第三章 MFC编程基础.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:39 大小:315KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

第三章 MFC编程基础.doc

第三章MFC编程基础.doc

预览

免费试读已结束,剩余 29 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第三章:MFC编程基础ITjob就业培训第三章:MFC编程基础ITjob就业培训第三章:MFC编程基础学习目标MFC编程基础及类库介绍MFC消息映射工作原理MFC常用消息的编程MFC文档视图结构MFC基础简介MFC是VC开发的面向WINDOWS程序的对象库,由一系统列DLL组成,主要实现了WINDOWS程序的OOP框架(CWnd),DOC_VIEW架构,和其它的应用功能.MFC结合了面向对象的编程技术和WINDOWS消息驱动的编程技术,并封装了WIN32API,其设计好处:消除了WIN32API的复杂性,封装了WIN32API,统一了程序的概念,而且可扩展。历史AFX项目小组进化而来,还有一些AFX代码,如AfxMessageBox,AFxGetApp。基类CObject,动态建删,序列化,诊断,集合,运行信息。其作用是保证MFC及其应用程序更稳固和更容易调试。核心类CCmdTarget:消息映射类,实现了消息机制,是所有响应消息的基类。它有一个消息映射列表,规定了对象收到消息时可以晌应什么消息处理函数来处理。消息可以是菜单项,命令按钮,加速键等消息。其子类主要有:CView,CWinApp,CDocument,CWnd,CFramWnd一般很少直接使用该类。MFC类库的结构表(参见MSDN)CWinThreadCWinThread是CWinApp的基,抽象了线程的机制,即程序的执行(EXE,DLL),封装了MFC程序的入口点,该基类通过对MFC线程的描述,可以实现工作者线程(即无界面线程)和界面线程,主要内容如下:m_bAutoDelete定义了在线程结束时是否要销毁对象.m_hThread当前线程的句柄.m_nThreadID当前线程的ID.m_pMainWnd保存的当前应用程序的主窗口句柄.m_pActiveWnd对于OLE就地激活服务器,表示当前包容器的主窗口句子柄.CWinApp主要内容CWinApp专门定义一个MFC程序的入口点,其主要内容:访问全局函数:AfxGetApp,AfxGetREsourceHandle,AfxGetAppName公共数据:m_pszAppName,m_nCmdShow,m_pMainWnd公共函数:LoadCursor,LoadStandardCursor,LoadIcon,LoadStandardIcon,OpenDocument虚函数:nitApplication,InitInstance,Run,OnIdle,PreTranslateMessageCWnd主要内容CWnd是一个窗口的抽象基类,描述一个窗口的一般特点,如绘图显示等,它通过封装底层的窗口句柄,来实现对象的概念和底层窗口句柄的概念的统一,支持Attach和Detach功能,对应的成员函数是:HWNDDetach(),BOOLAttach(HWNDhWndNew);当一个对象绑定到一个窗口句柄时,对象的成员函数就可控制窗口,解除绑定时则不能。其主要内容:成员:m_hWnd方法:初始化,窗口状态函数,大小和位置,窗口内容,绘图,文本,流动函数,菜单,剪切板函数CDialog的主要派生类CDialog由CWnd类派生,专门定义一个MFC对话框,支持两对话框类型,模式对话框和无模式对话框,对话框可以让程序关联到一个对话框资源,以方便对对话框界面的开发。此外它和窗口类一样都具有消息映射和窗口处理功能。CDialog的使用主要是通过定义其派生类来实现,MFC考虑到有一些通用的对话框,如文件,颜色对话框等,专门派生出一个CCommonDialog来实现这一功能。CDialog的主要派生类CCommonDialog,从其派生出的类主要有:CFileDialog,CFontDialog,CColorDialog,CPageSetupDialog,CPrintDialog,CFindReplaceDialog,COleDialog通用对话框的使用方法://GettheselectedcolorfromtheCColorDialog.CColorDialogdlg;if(dlg.DoModal()==IDOK){COLORREFcolor=dlg.GetColor();TRACE("RGBvalueoftheselectedcolor-red=%u,green=%u,blue=%u\n",GetRValue(color),GetGValue(color),GetBValue(color));}在程序运行时CWinApp将创建一个CFrameWnd框架窗口实例,而框架窗口将创建文档模