浅出MFC设计part3.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
浅出MFC设计part3

看一下孙鑫的VC++教程――数据库那部分的!! 第五章 总观Application Frameword 什么是Application Framework 为什么使用Application Framework 关于Application Framework,class Library,GUI toolkit 纵览MFC General Purpose classes Windows API classes 这是MFC声名最著的一群类别。如果你去看源代码,就会看到这些类别的成员函数所对应的各个windows API函数。 Application framework classes High level abstractions 视觉性UI对象属于此类,例如工具栏CToolBar,状态列CStatusBar,对话框列CDialogBar。加强型的CView也属于此类,如可卷动的ScrollView,以对话框为基础的CFormView,小型文字编辑器CEditView,树状结构的CTreeView,支持RTF文件格式的CRichEditView等等 Afx全局函数 C++并不是纯种的对象导向语言(SmallTalk和java才是)。所以,MFC之中得以存在有不属于任何类别的全域函数,它们统统在函数名称开头冠以Afx MFC宏(macros) MFC数据类型(data type) 下面所列的这些数据类型,常常出现在MFC之中,其中的绝大部分都 和一般的Win32程序(SDK程序)所用的相同。 下面这些是和Win32程序使用的数据类型: 下面这些是MFC独特的数据类型 前面所说那些MFC数据类型与C++语言数据类型之间的对应,定义于;WINDEF.H中。 Eg: 。。。。 第六章 MFC程序的生死因果 不二法门:熟记MFC类别的阶层架构 需要什么函数库 这里要注意静态联结MFC函数库与动态联结MFC函数库的区别,动态联结的话,函数库在机器上,如果将程序移植到另一台机器,那台机器上如果没有相应的函数库,就会出错。 而静态联结,意味着把应用程序需要的函数库全部拷贝到应用程序目录下,这样程序移植的时候,把需要的函数库也移植了,就不会出错。 需要什么头文件 简化的MFC程序架构――以Hello MFC为例 Hello程序源代码 MFC程序的来龙去脉(causal relations) CWinApp――取代WinMain的地位 。。。。。。。 。。。。。 CFrameWnd――取代WndProc的地位 在MFC里面,似乎应该是在CWnd类里有一个WindowProc这个类,应该就是这个函数来作为窗口回调函数,因为所有的窗口回调函数都继承自CWnd类,CFrame类也是的。 在MFC中,为了让程序更加结构化,更容易理解和维护,利用了两个宏来处理消息映射:DECLARE_MESSAGE_MAP和BEGIN_MESSAGE_MAP,见前面第三章。 程序运行第一步:引爆器――Application Object 从这一节以下,将以此图解释MFC程序的激活,运行与结束,不同小节的图将标示出当时的程序进行状况 程序运行第二步:隐晦不明的WinMain 主要动作: tWinMain调用AfxWinMain,AfxWinMain调用AfxWinInit 在这个过程中, tWinMain的参数hInstance经过AfxWinMain传给AfxWinInit,然后在AfxWinInit中利用传进来的参数对theApp对象进行初始化(利用全局函数AfxGetApp) 在AfxWinInit中除了对theApp对象进行初始化之处,还调用AfxInitThread函数对线程进行初始化。 程序运行第三步:AfxWinInit――AFX内部初始化动作 程序运行第四步:CWinApp::InitApplication 程序运行第五步:CMyWinApp::InitInstance 程序运行第六步:CFramWnd::Create产生主窗口(并先注册窗口类别) 小结: 在MFC中,应用程序窗口的产生,必须经历窗口类的注册-》创建-》显示。 这一系列的动作是通过theApp-InitInstance()函数来组织调用的。PS:即在InitInstance里做了好多的工作,调用了相关的函数,这些函数就有窗口类的注册,窗口的创建和窗口的显示工作。 窗口类的注册动作,MFC给我们提供的接口是各个窗口类的PreCreateWindow()函数, BOOL CStudentInfoView::PreCreateWindow(CREATESTRUCT cs) 利用这个结构体参数,对窗口的样式进行设定,这个结构体如下: typedef struct tagCREATESTRUCT {

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档