对话框程序代码详解PPT文件格式下载.pptx

上传人:b****1 文档编号:14398745 上传时间:2022-10-22 格式:PPTX 页数:23 大小:927.35KB
下载 相关 举报
对话框程序代码详解PPT文件格式下载.pptx_第1页
第1页 / 共23页
对话框程序代码详解PPT文件格式下载.pptx_第2页
第2页 / 共23页
对话框程序代码详解PPT文件格式下载.pptx_第3页
第3页 / 共23页
对话框程序代码详解PPT文件格式下载.pptx_第4页
第4页 / 共23页
对话框程序代码详解PPT文件格式下载.pptx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

对话框程序代码详解PPT文件格式下载.pptx

《对话框程序代码详解PPT文件格式下载.pptx》由会员分享,可在线阅读,更多相关《对话框程序代码详解PPT文件格式下载.pptx(23页珍藏版)》请在冰豆网上搜索。

对话框程序代码详解PPT文件格式下载.pptx

,5,对话框程序的文件组织,ReadMe.txt自动生成的说明文件W1_2.clw类向导使用的文件W1_2.dsp工程文件W1_2.dsw项目文件(启动)W1_2.ncb支持ClassView的文件W1_2.opt配置文件W1_2.plg日志文件,这些都是自动生成的,与程序功能和编译无关,也不需要知道它们的内部结构,记住一个原则即可:

原则2:

只修改*.cpp和*.h文件,其他一概不理。

6,文件与类,我们自己添加的函数、变量。

7,基于对话框的程序,其核心是由CWinApp和CDialog类中派生出来的两个类。

对话框程序的编程,可以看作是对两个派生类的编程。

其中,主要是以消息响应函数的形式,在CDialog类的派生类中编写代码。

8,App.h文件,由框架生成的类的第一部分,重载基类虚函数,这里只重载了一个函数:

InitInstance(),由框架生成的类的第二部分,类的实现,这部分是用来响应消息的。

9,App.cpp

(1),这一部分,是用来实现消息映射、消息响应的。

暂时先不用去明白其原理。

以后会讲到。

有且仅有一个的程序对象。

10,App.cpp

(2):

InitInstance函数,声明一个Dialog类对象。

m_pMainWnd是App的基类中的一个指针对象。

一些选项,不用理会,调用DoModal()方法,完成窗口的创建、显示。

我们在后续课程中会学到该方法。

这里仅了解即可。

App类的构造函数和InitInstance()是框架中最先被调用的,起到类似于main()的作用。

在初始化函数InitInstance中声明程序主窗口对象CW2_3Dlgdlg;

并且创建并显示这个窗口。

App.cpp文件中声明了唯一的全局App类对象:

CW2_3ApptheApp;

11,App类小结

(1),App类中,通过下面的三大宏(先不必管什么意思),实现该类的消息映射和响应。

实际上,MFC框架程序中所有框架类都有这三大宏。

12,App类小结

(2),对话框程序的文件结构App类Dlg类MFC程序执行流程MFC中的消息响应过程控件的手工操作和使用,13,本课内容,14,Dlg.h

(1)对话框数据部分,重载自基函数,数据交换函数。

通过类向导添加的成员变量,对话框数据,15,Dlg.h

(2)对话框实现部分,三大宏:

消息映射,该类的所有消息响应函数,程序图标句柄,16,Dlg.cpp

(1)构造函数,Dlg类的构造函数中自动初始化了我们添加的各个变量,最后调用全局函数LoadIcon,装载默认的程序图标,变量的初始化,著名的MFC的DDX机制:

每当通过ClassWizard为控件添加一个变量时,就会自动添加该变量的一个DDX到该函数中。

DDX实现控件资源ID与成员变量的“绑定”。

每当调用updatedata()函数,就会调用DoDataExchange().,17,Dlg.cpp

(2)MFC控件的DDX,18,Dlg.cpp(3)再现三大宏,Dlg类中的所有消息响应函数都被放在这里。

这几个函数是MFC框架中默认为对话框程序添加的系统消息响应函数。

程序Create一个对话框后,首先调用对话框的构造函数,接着就调用OnInitDialog函数。

在程序位置改变、需要刷新页面时,调用OnPaint()其他先不必理会。

19,Dlg.cpp(4)其他函数,20,小结:

App与Dlg结构共同点,预编译头文件StdAfx.h资源描述文件*.rc图标资源文件*.ico资源头文件Resource.h,21,工程中的其他文件,定义了所有资源的ID,Dlg程序中:

App类中的InitInstance可以看作程序的main,实现程序启动和窗口创建。

Dlg类中的OnInitialDialog可以看作初始化函数,用来在程序运行开始前,对程序进行设置。

但:

“可以看作”“就是”MFC的Main函数叫做AfxWinMain。

它被作为MFC的全局函数,独立于MFC类库存在,用户无法修改(因此也没有必要学习)。

在程序启动以后,首先调用AfxWinMain,然后找到唯一的App类对象,调用其InitInstance,启动程序。

22,问题:

代码中没看到main?

intAFXAPIAfxWinMain()/.CWinApp*pApp=AfxGetApp();

if(!

pThread-InitInstance()/.errorprocnRCode=pThread-Run();

/.,23,程序的执行流程&

演示,MFC全局函数,获取当前程序中App类对象指针,通过多态,执行App类对象的InitInstance函数,Run函数实际上启动了消息循环。

通过MFC消息响应宏,实现各个类中消息的响应。

在调试时,直接F10,就能看到详细过程。

演示一下。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 财务管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1