
MFC
文章平均质量分 80
m_ii_m
这个作者很懒,什么都没留下…
展开
-
(1)Window编程模型及MFC类表(MFC学习)
从传统的Windows编程环境如C和Windows SDK进人MFC编程的,那么您已经熟悉了许多使用MFC编写Windows程序时需要理解的概念。但是如果是从面向字符的环境如MS-DOS或UNIX进人的,您将会发现Window编程完全不同于您以前所做的工作。为传统操作系统编写的程序使用的是过程化的模型程序从头到尾按顺序执行。每次程序调用从开始到结束所经的路径可能会不同,这是由于程序所接原创 2014-03-11 23:23:32 · 1018 阅读 · 0 评论 -
第十一讲 MFC下的文件类
第十一讲 MFC下的文件类文件操作的方法使用Visual C++编程,有如下方法进行文件操作:(1)使用标准C运行库函数,包括fopen、fclose、fseek等。(2)使用Win16下的文件和目录操作函数,如lopen、lclose、lseek等。不过,在Win32下,这些函数主要是为了和Win16向后兼容。(3)使用Win32下的文件和目录操作函数,如Cr转载 2014-03-26 23:16:49 · 750 阅读 · 0 评论 -
第四讲 消息映射的实现
第四讲 消息映射的实现Windows消息概述Windows应用程序的输入由Windows系统以消息的形式发送给应用程序的窗口。这些窗口通过窗口过程来接收和处理消息,然后把控制返还给Windows。消息的分类队列消息和非队列消息从消息的发送途径上看,消息分两种:队列消息和非队列消息。队列消息送到系统消息队列,然后到线程消息队列;非队转载 2014-03-26 23:05:39 · 694 阅读 · 0 评论 -
第十讲 内存分配方式和调试机制
第十讲 内存分配方式和调试机制M内存分配内存分配函数MFCWin32或者C语言的内存分配API,有四种内存分配API可供使用。Win32的堆分配函数每一个进程都可以使用堆分配函数创建一个私有的堆──调用进程地址空间的一个或者多个页面。DLL创建的私有堆必定在调用DLL的进程的地址空间内,只能被调用进程访问。HeapCrea转载 2014-03-26 23:13:50 · 707 阅读 · 0 评论 -
第十四讲 SOCKET类的设计和实现
第十四讲 SOCKET类的设计和实现WinSock基本知识这里不打算系统地介绍socket或者WinSock的知识。首先介绍WinSock API函数,讲解阻塞/非阻塞的概念;然后介绍socket的使用。WinSock APISocket接口是网络编程(通常是TCP/IP协议,也可以是其他协议)的API。最早的Socket接口是Berkeley接口,在U转载 2014-03-26 23:21:00 · 809 阅读 · 0 评论 -
第七讲 MFC的DLL
第七讲 MFC的DLL一般的,在介绍Windows编程的书中讲述DLL的有关知识较多,而介绍MFC的书则比较少地提到。即使使用MFC来编写动态链接库,对于初步接触DLL的程序员来说,了解DLL的背景知识是必要的。另外,MFC提供了新的手段来帮助编写DLL程序。所以,本节先简洁的介绍有关概念。DLL的背景知识静态链接和动态链接当前链接的目标代码转载 2014-03-26 23:11:13 · 591 阅读 · 0 评论 -
第二讲MFC和Win32
第二讲MFC和Win32MFC Object和Windows Object的关系MFC中最重要的封装是对Win32 API的封装,因此,理解Windows Object和MFC Object (C++对象,一个C++类的实例)之间的关系是理解MFC的关键之一。所谓Windows Object(Windows对象)是Win32下用句柄表示的Windows操作系统对象;所谓转载 2014-03-26 23:03:05 · 749 阅读 · 0 评论 -
第六讲 应用程序的退出
第六讲 应用程序的退出一个Windows应用程序启动之后,一般是进入消息循环,等待或者处理用户的输入,直到用户关闭应用程序窗口,退出应用程序为止。例如,用户按主窗口的关闭按钮,或者选择执行系统菜单“关闭”,或者从“文件”菜单选择执行“退出”,都会导致主窗口被关闭。当用户从“文件”菜单选择执行“退出”时,将发送MFC标准命令消息ID_APP_EXIT。MFC实现了函数CWinApp:转载 2014-03-26 23:08:00 · 1104 阅读 · 0 评论 -
第八讲 MFC的进程和线程
第八讲 MFC的进程和线程Win32的进程和线程概念进程是一个可执行的程序,由私有虚拟地址空间、代码、数据和其他操作系统资源(如进程创建的文件、管道、同步对象等)组成。一个应用程序可以有一个或多个进程,一个进程可以有一个或多个线程,其中一个是主线程。线程是操作系统分时调度分配CPU时间的基本实体。一个线程可以执行程序的任意部分的代码,即使这部分代码被另一个线程并转载 2014-03-26 23:12:04 · 1762 阅读 · 0 评论 -
第十三讲 MFC工具条和状态栏
第十三讲 MFC工具条和状态栏Windows控制窗口Windows (Windows95或者以上版本) 提供了系列通用控制窗口,其中包括工具条(ToolBar)、状态栏(StatusBar)、工具条提示窗口(ToolTip)。Windows在一个DLL加载时注册个控制窗口的“窗口类”。例如,工具条的“窗口类”是“ToolbarWindow32”,状态栏的“窗口类转载 2014-03-26 23:18:58 · 2104 阅读 · 0 评论 -
VC中BSTR、Char*、CString类型相互转换
1、char*转换成CString若将char*转换成CString,除了直接赋值外,还可使用CString::format进行。例如:char chArray[] = "This is a test";char * p = "This is a test";或LPSTR p = "This is a test"; 或在已定义Unicode应的用程序中TCH转载 2014-04-08 16:16:28 · 3255 阅读 · 0 评论 -
第九讲 MFC的状态
第九讲 MFC的状态MFC定义了多种状态信息,这里要介绍的是模块状态、进程状态、线程状态。这些状态可以组合在一起,例如MFC句柄映射就是模块和线程局部有效的,属于模块-线程状态的一部分。模块状态这里模块的含义是:一个可执行的程序或者一个使用MFC DLL的DLL,比如一个OLE控件就是一个模块。一个应用程序的每一个模块都有一个状态,模块状态包括这样一些信息:用来加载转载 2014-03-26 23:15:41 · 1111 阅读 · 0 评论 -
第五讲 MFC对象的创建
第五讲 MFC对象的创建前面几章介绍了MFC的核心概念和思想,即介绍了MFC对Windows对象的封装方法和特点;MFC对象的动态创建、序列化;MFC消息映射机制。现在,考查MFC的应用程序结构体系,即以文档-视为核心的编程模式。学习本章,应该弄清楚以下问题:MFC中诸多MFC对象的关系:应用程序对象,文档对象,边框窗口对象,文档边框窗口对象,视对象,文档模板对象等。MFC对象转载 2014-03-26 23:07:13 · 1893 阅读 · 0 评论 -
VC中ComboBox使用详解
VC中ComboBox使用详解一、如何添加/删除ComboBox内容1,在Combo Box控件属性的Data标签里面添加,一行表示Combo Box下拉列表中的一行。换行用ctrl+回车。2, 在程序初始化时动态添加如: //控件内容初始化 CString strTemp; ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->ResetCont转载 2014-03-31 15:01:38 · 1176 阅读 · 0 评论 -
CString TCHAR的互相转换
CString->TCHAR*的转化可以用函数GetBuff()函数原型为:LPTSTR GetBuffer( int nMinBufLength );CString str("CString"); TCHAR* szMsg = new TCHAR[100]; //其参数为CString字符串的长度 szMsg = str.GetBuffer(str.GetLength()转载 2014-04-01 14:50:20 · 810 阅读 · 0 评论 -
Combo Box (组合框)控件
Combo Box (组合框)控件很简单,可以节省空间。从用户角度来看,这个控件是由一个文本输入控件和一个下拉菜单组成的。用户可以从一个预先定义的列表里选择一个选项,同时也可以直接在文本框里面输入文本。下面的例子简要说明如何利用 MFC CComboBox Class来操作字符串列表。1、定义控件对应变量假定已经创建了一个Dialog,并且从控件工具箱将 Combo Box 控件拖放到上面转载 2014-03-31 15:25:01 · 5873 阅读 · 0 评论 -
C++文件(夹)选择对话框
由于各种应用,我们需要调用系统的打开文件对话框或者打开文件夹对话框,或两者兼有。今遇到这个情况已经解决,特写下这篇博文。1.打开文件对话框常用的方法是使用系统的CFileDialog。这里介绍另外一种方法就是使用OPENFILENAME这个结构体和GetOpenFileName()这个函数,可以实现单选文件或者多选文件,代码如下:需引入头文件#include "CommDlg.h"转载 2014-04-01 14:13:43 · 1026 阅读 · 0 评论 -
VC学习笔记 -单选按钮控件(Ridio Button)的使用
在VC++编程过程中,查资料是一个苦差事,案边放了一摞书左翻右翻好是烦人。一赌气就把一些常用的小技巧自己总结了一下,虽费了些功夫,但对以后编程很有好处。现拿出来与大家共享,以后积累多了,作一个CHM电子书,用的时候翻阅实在很方便。注:有些内容来源于网上文章,名字我都没记下来,这里向作者致谢了!VC学习笔记1:按钮的使能与禁止用ClassWizard的Member Variabl转载 2014-03-31 17:11:19 · 3229 阅读 · 0 评论 -
VC6.0 操作Excel表格
介绍:使用Microsoft Office所带的控件来实现代码操作excel表格,从思路上来看,操作excel表格就是将其打开,然后写入/读出数据,然后关闭。一、 添加COM库支持首先创建一个程序(一个MFC的单文档程序),在程序的入口处和出口处先作这样两个步骤来支持COM库:在程序入口处CMyApp:: InitInstance()函数AfxEnableContr转载 2014-04-17 21:46:11 · 3889 阅读 · 1 评论 -
VC中用内存映射文件处理大文件
文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供有支持文件处理的函数和类,常用的有Win32 API的CreateFile()、WriteFile()、ReadFile()和MFC提供的CFile类等。一般来说,以上这些函数可以满足大多数场合的要求,但是对于某些特殊应用领域所需要的动辄几十GB、几百GB、乃至几TB的海量存储,再以通常的文件处理方法进行处理显然是行不通的。转载 2014-04-03 08:50:30 · 853 阅读 · 0 评论 -
VC/MFC 封装好的文件内存映射类
一、创建过程1) // 第一步:创建文件HANDLE hFile = CreateFileForMapping(_T("MyMemFile.dat"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);ASSERT转载 2014-04-03 09:00:32 · 2966 阅读 · 0 评论 -
windows消息机制
Windows中,消息使用统一的结构体(MSG)来存放信息,其中message表明消息的具体的类型,而wParam,lParam是其最灵活的两个变量,为不同的消息类型时,存放数据的含义也不一样。time表示产生消息的时间,pt表示产生消息时鼠标的位置。按照类型,Windows将消息分为:(0) 消息ID范围系统定义消息ID范围:[0x0000转载 2014-03-24 20:03:45 · 1040 阅读 · 0 评论 -
VC 目录、文件的相关操作
目录是否存在检查: BOOL FolderExist(CString strPath){ WIN32_FIND_DATA wfd; BOOL rValue = FALSE; HANDLE hFind = FindFirstFile(strPath, &wfd); if ((hFind!=INVALID_HANDLE_VALUE)转载 2014-04-20 21:17:20 · 722 阅读 · 0 评论 -
多线程--线程同步
线程的同步Critical section(临界区)用来实现“排他性占有”。适用范围是单一进程的各线程之间。它是:· 一个局部性对象,不是一个核心对象。· 快速而有效率。· 不能够同时有一个以上的critical section被等待。· 无法侦测是否已被某个线程放弃。Mutex转载 2014-06-08 14:58:10 · 884 阅读 · 0 评论