d.cpp:由 CDockablePane 类派生出 CPropertiesWnd类,用于实现应用程序界面右侧面板 Properties。
ViewTree.h 和 ViewTree.cpp:由 CTreeCtrl 类派生出 CViewTree 类,用于实现出现在 ClassView 和 FileView 等中的树视图。
4.资源文件一般我们使用 MFC 生成窗口程序都会有对话框、图标、菜单等资源,应用程序向导会生成资源相关文件:res 目录、HelloWorld.rc 文件和 Resource.h 文件。
res 目录:工程文件夹下的 res 目录中含有应用程序默认图标、工具栏使用图标等图标文件。
HelloWorld.rc:包含默认菜单定义、字符串表和加速键表,指定了默认的 About 对话框和应用程序默认图标文件等。
Resource.h:含有各种资源的 ID 定义。
5.预编译头文件几乎所有的 MFC 程序的文件都要包含 afxwin.h 等文件,如果每次都编译一次则会大大减慢编译速度。
所以把常用的 MFC 头文件都放到了 stdafx.h 文件中,然后由 stdafx.cpp 包含 stdafx.h 文件,编译器对 stdafx.cpp 只编译一次,并生成编译之后的预编译头 HelloWorld.pch,大大提高了编译效率。
6.编译链接生成文件如果是 Debug 方式编译,则会在解决方案文件夹和工程文件夹下都生成 Debug 子文件夹,而如果是 Release 方式编译则生成 Release 子文件夹。
工程文件夹下的 Debug 或 Release 子文件夹中包含了编译链接时产生的中间文件,解决方案文件夹下的 Debug 或 Release 子文件夹中主要包含有应用程序的可执行文件。
关于应用程序工程文件的组成结构鸡啄米就先讲到这了。
其中包含了很多专有名词,以后大家会慢慢熟悉的。
欢迎来鸡啄米博客交流。
谢谢。
VS2010/MFC 编程入门之四(MFC 应用程序框架分析)分类标签: 编程入门 VC++ MFC VS2010上一讲鸡啄米讲的是 VS2010应用程序工程中文件的组成结构,可能大家对工程的运行原理还是很模糊,理不出头绪,毕竟跟 C编程入门系列中的例程差别太大。
这一节鸡啄米就为大家分析下 MFC 应用程序框架的运行流程。
一.SDK 应用程序与 MFC 应用程序运行过程的对比程序运行都要有入口函数,在之前的 C教程中都是 main 函数,而 Windows 应用程序的入口函数是 WinMain 函数,MFC 程序也是从 WinMain 函数开始的。
下面鸡啄米就给出用Windows SDK 写的“HelloWorld”程序,与应用程序框架进行对比,这样能更好的了解框架是怎样运行的。
Windows SDK 开发程序就是不使用 MFC 类库,直接用 Windows API 函数进行软件开发。
鸡啄米不是要讲解 SDK 开发,只是为了对比而简单介绍,至于 SDK 开发可以在大家学完 MFC 以后选择是否要研究,一般来说有简单了解就可以了。
SDK 应用程序首先,给出 Windows SDK 应用程序“HelloWorld”的源码:C代码 1 include ltwindowsgt 2 3 int WINAPI WinMainHINSTANCE hInstance HINSTANCE hPrevInstance PSTR szCmdLine int iCmdShow 4 5 const static TCHAR appName TEXTquotHello worldquot 6 WNDCLASSEX myWin 7 myWin.cbSize sizeofmyWin 8 myWin.style CS_HREDRAW CS_VREDRAW 9 myWin.lpfnWndProc myWndProc 10 myWin.cbClsExtra 0 11 myWin.cbWndExtra 012 myWin.hInstance hInstance13 myWin.hIcon 014 myWin.hIconSm 015 myWin.hCursor 016 myWin.hbrBackground HBRUSHCOLOR_WINDOW 117 myWin.lpszMenuName 018 myWin.lpszClassName appName19 //Register20 if RegisterClassExampmyWin return 021 const HWND hWindow CreateWindow22 appName23 appName24 WS_OVERLAPPEDWINDOW25 CW_USEDEFAULT26 CW_USEDEFAULT27 CW_USEDEFAULT28 CW_USEDEFAULT29 030 031 hInstance32 033 ShowWindowhWindowiCmdShow34 UpdateWindowhWindow35 36 MSG msg37 whileGetMessageampmsg00038 39 TranslateMessageampmsg40 DispatchMessageampmsg41 42 return intmsg.wParam43 44 4546 LRESULT CALLBACK myWndProcHWND hWindow UINT msg WPARAM wParam LPARAM lParam 47 48 if msgWM_PAINT 49 50 PAINTSTRUCT ps 51 const HDC hDC BeginPainthWindowampps 52 RECT rect 53 GetClientRecthWindowamprect 54 DrawTexthDCTEXTquotHELLO WORLDquot-1amprect DT_SINGLELINE DT_CENTER DT_VCENTER 55 EndPainthWindowampps 56 return 0 57 58 else if msgWM_DESTROY 59 60 PostQuitMessage0 61 return 0 62 63 return DefWindowProchWindowmsgwParamlParam 64 上面的程序运行的流程是:进入 WinMain 函数-gt初始化 WNDCLASSEX,调用 RegisterClassEx 函数注册窗口类-gt调用 ShowWindow 和 UpdateWindow 函数显示并更新窗口-gt进入消息循环。
关于消息循环再简单说下,Windows 应用程序是消息驱动的,系统或用户让应用程序进行某项操作或完成某个任务时会发送消息,进.
上一篇:
【精品】TMS320VC5502最小系统板说明书
下一篇:
电咖汽车入选2018独角兽企业榜百强 发布“天际”品牌将推高估值