mfc&win32比较

mfc&win32比较

ID:13200443

大小:37.50 KB

页数:4页

时间:2018-07-21

mfc&win32比较_第1页
mfc&win32比较_第2页
mfc&win32比较_第3页
mfc&win32比较_第4页
资源描述:

《mfc&win32比较》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、MFC&WIN32比较MFC把具有相当固定行为的WinMain内部操作封装在CWinApp中,把有着相当固定行为的WndProc内部操作封装在CFrameWnd中。几乎可以说CWinApp用来取代WinMain在SDK程序中的地位,CFrameWnd取代SDK程序中窗口函数的地位。首先MFC程序需要下面函数库:(1)WindowsCRuntime函数库:LIBC.LIB/MSVCRT.LIB/MSVCRTD.LIB(2)DLLImport函数库:GDI32.LIB/USER32.LIB/KERN

2、EL32.LIB(3)MFC函数库(AFX函数库):MFC42.LIB/MFC42D.LIB……同时,MFC程序需要下面头文件:(1)Stdafx.h:预编译头文件,其内只是载入其他的MFC头文件。(2)Afxwin.h:每个MFC程序都必须载入它,因为它以及它所载入的文件声明了所有的MFC类,此文件含有Afx.h,后者又载入Afxvver_.h,后者又载入Afxv_w32.h,后者又载入windows.h(SDK程序必须要的头文件)。(3)Afxext.h:使用工具栏、状态栏的程序必须载入这个

3、文件。(4)Afxdlgs.h:使用通用型对话框的MFC程序需要此文件,其内部载入COMMDLG.H(5)Afxcmn.h:使用Win9x新增的通用型控件的MFC程序必须载入此文件。(6)Afxcoll.h:使用CollectionsClasses的程序要此文件(7)Afxres.h:MFC程序的RC文件必须载入此文件。[解释]预编译头文件:所谓预编译头文件是指将.H文件第一次编译后的结果保存起来,第2次编译的时候就可以直接从磁盘上取出来用。一个具体而微的MFC程序和Win32之间的关系:MFC

4、程序也是Windows程序,所以它应该有一个WinMain,但在程序进入点之前,还有一个全局对象theApp,这是所谓的应用程序对象。当操作系统将程序加载并激活的时候,这个全局对象获得配置,其构造函数会先执行,必WinMain更早。CmyWinApptheApp;theApp是程序的应用程序对象,每一个MFC程序有且只有这么一个,当执行程序时,这个全局对象产生,于是构造函数执行起来。一般来说CwinApp的构造函数被执行。CwinApp之中的成员变量将因为theApp这个全局对象的诞生而获得配置

5、与初值。theApp配置完成后,WinMain登场,我们并没有撰写WinMain程序代码,这是MFC早已准备好并由连接器直接加到应用程序代码中的。加入如下代码:extern“C”intWINAPI_tWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPTSTRlpCmdLine,intnCmdShow){returnAfxWinMain(hInstance,hPrevInstance,lpCmdLine,nCmdShow);}其中AfxWinM

6、ain定义如下:intAFXAPIAfxWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPTSTRlpCmdLine,intnCmdShow){intnReturnCode=-1;CwinApp*pApp=AfxGetApp();AfxWinInit(hInstance,hPrevInstance,lpCmdLine,nCmdShow);pApp->InitApplication();pApp->InitInstance();nReturnC

7、ode=pApp->Run();AfxWinTerm();ReturnnReturnCode;}关于AfxWinMain的四个主要操作说明:(1)AfxWinInit——AFX内部初始化操作。它是继CwinApp构造函数之后的第一个操作。在这函数内对theApp的某些成员初始化,而且还调用了AfxInitThread函数,把消息队列尽量加大到96。(2)CwinApp::InitApplication。InitApplication是CwinApp的一个虚函数,一般情况下不需要改写它。在此函数中

8、的操作都是MFC为了内部管理而作的(DocManager相关)。(3)CmyWinApp::InitInstance。每个MFC程序都应该改写CwinApp::InitInstance这个函数,因为它在CwinApp中只是一个空函数。在这个函数里面,代码如下:BOOLCmyWinApp::InitInstance(){m_pMainWnd=newCmyFrameWnd();m_pMainWnd->ShowWindow(m_nCmdShow);m_pMainWnd->UpdateWindow();

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。