【摘要】:本节通过MFC应用程序向导新建一个工程,演示基于MFC架构平台的对话框程序。图2-29 MFC应用程序向导第三步选中“As a statically linked library”单选按钮,最后单击“Finish”按钮完成MFC工程的创建。在使用MFC应用程序向导新建工程时,选择“As a statically linked library”选项编译器会把MFC类库代码编译到可执行文件内部;选择“As a shared DLL”使用系统内共享的MFC动态库。在各个软件公司内一般要求使用静态链接,本书也统一要求新建MFC工程时都使用静态链接方式。12)API和MFC的关系。
通过Win32平台能够开发出所有需要的Windows软件,但是Win32开发平台是极其原始而且落后的平台。它是基于C语言面向过程式的开发模式,是在C++语言还不流行的20世纪八九十年代的主要开发手段。可想而知当C++语言流行后,随之而来的是面向对象的开发模式。因此,自从20世纪90年代后期开始,基于MFC平台的开发模式成为了Windows开发的主体。
本节通过MFC应用程序向导新建一个工程,演示基于MFC架构平台的对话框程序。
1)执行File→New命令,或按快捷键<Ctrl+N>弹出新建程序向导,如图2-27所示。
在新建对话框左侧列表中选择“MFC AppWizard(exe)”,单击“…”按钮选择一个容易找到的位置,最后在“Project name”文本框中填写一个工程名“FirstMFC”。
图2-27 新建MFC工程
2)单击“OK”按钮进入MFC应用程序向导第一步“Step 1”,如图2-28所示。
图2-28 MFC应用程序向导第一步
选中“Dialog based”单选按钮,再单击“Next”按钮,进入第二步“Step 2”。
3)在第二步不作任何修改,继续单击“Next”按钮进入第三步“Step 3”,如图2-29所示。
图2-29 MFC应用程序向导第三步
选中“As a statically linked library”单选按钮,最后单击“Finish”按钮完成MFC工程的创建。
4)完成工程创建后先按<F7>快捷键编译,并查看Debug目录下生成的可执行文件,如图2-30所示。
图2-30 MFC可执行文件
通过MFC应用程序向导创建的工程中,工作区(Workspace)自动带有资源视图(ResourceView)分页,其中已经自动生成了Dialog、Icon、Version以及StringTable等资源。编译出来的可执行文件带有默认的MFC图标,与资源视图中的图标资源是一致的。运行这个可执行文件,弹出的对话框与资源视图中主对话框的模板是一致的。
5)在主对话框资源中,设置对话框的标题(Caption)并添加一些控件,如图2-31所示。
6)添加设置对话框所有控件的属性,见表2-5。(www.chuimin.cn)
图2-31 在对话框中添加控件
表2-5 控件类型和属性
7)分别双击“添加”“删除”和“修改”按钮,创建3个与按钮关联的成员函数,如图2-32所示。
图2-32 添加按钮关联函数
8)在对话框关联的源文件FirstMFCDlg.cpp中,修改对话框初始化函数代码如下。
9)再修改3个按钮关联函数的代码。
10)编译并运行,测试以上代码,如图2-33所示。
图2-33 查看运行结果
11)MFC的动态链接和静态链接。在使用MFC应用程序向导新建工程时,选择“As a statically linked library”选项编译器会把MFC类库代码编译到可执行文件内部;选择“As a shared DLL”使用系统内共享的MFC动态库。前者编译出来的可执行文件虽然较大,但是不需要系统提供动态库支持,更加安全。在各个软件公司内一般要求使用静态链接,本书也统一要求新建MFC工程时都使用静态链接方式。
12)API和MFC的关系。API(Application Programming Interface,应用程序编程接口)是由操作系统提供给开发者的C语言格式的全局函数。第三节用到的GetDlgItemInt和SetDlgItemInt函数就是API函数,这些函数是与对象无关的C格式函数。Win32是面向API的编程平台,操作系统提供的API数量相当庞大,而且没有分类难以组织和记忆。
MFC(Microsoft Fundation Classes,微软的基础类库)这个类库分类封装了大部分Windows API,便于开发人员分类了解类库函数功能。学习过C++封装原理的读者都知道,没有封装类的函数接口无论功能有多么强大,但是对于开发者来说都是难于使用和难于记忆的。就如同没有机箱和按钮的电视机,选台或调节音量就需要到电视机主板上去找接口一样。封装类就如同为电视机安装上机箱和按钮而且还有遥控器,选台或调节音量操作都非常方便。
相关推荐