下载此文档

西南交通大学经济管理学院何耀琴.ppt


文档分类:研究生考试 | 页数:约45页 举报非法文档有奖
1/45
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/45 下载此文档
文档列表 文档介绍
计算机高级程序设计
第五章
1
西南交通大学经济管理学院:何耀琴
对话框的基本概念
对话框是一种次要窗体,通常在响应某个命令菜单时弹出。在对话框上可以添加各种通用控件。
所有对话框及对话框上的控件都由CWnd类派生而来。因而能对窗体进行的操作也适用于对话框及控件。
对话框是一种能包含各类通用控件的特殊窗口,通过添加到其上的控件,对话框可以完成指定的任务。分为两部分:
对话框模板
开发人员可利用对话框模板往对话框上添加控件并进行合理布局。
对话框在创建时会收到WM_INITDIALOG的消息,响应该消息的事件处理函数为OnInitDialog(),其作用是对话框初始化
对话框类
开发人员可以为每个对话框定义一个派生CDialog的新类用来实现为对话框指定的特殊功能
2
西南交通大学经济管理学院:何耀琴
模态对话框
以排他方式工作的对话框。这类对话框出现时,用户虽然可以看见应用程序的其他对象,但在其关闭之前,输入焦点不能切换到拥有该对话框的应用程序的其他窗口中去,也就是不能实现同其他对象的交互。
在MFC单文档项目中,可以通过对话框类的成员函数DoModal()来创建并显示一个模态对话框。
3
西南交通大学经济管理学院:何耀琴
创建模态对话框的流程
(1)创建一个MFC单文档项目,命名为“ModelDialog”
(2)切换到“资源视图”,右键单击“ModelDialog”。右键菜单中选择“添加”→“资源”→“Dialog”;
(3)选择“Dialog”,单击“新建”;
此时屏幕上会出现一个对话框模板;
(4)双击对话框模板,在“MFC类向导”窗口中为新添加的对话框资源声明一个派生于CDialog的类CModel;
(5)单击“完成”;
4
西南交通大学经济管理学院:何耀琴
对话框模板
5
西南交通大学经济管理学院:何耀琴
新派生的类
基类
6
西南交通大学经济管理学院:何耀琴
创建模态对话框的流程(续)
(6)切换到“解决方案资源管理器”;
(7)双击打开“”,添加“#include “”的包含语名;
(8)打开“”文件,找到应用程序类的初始化函数BOOL CModelDialogApp::InitInstance(),在初始化函数中添加创建和显示模态对话框的代码。(见下页图);
(9)调试并运行程序。
7
西南交通大学经济管理学院:何耀琴
8
西南交通大学经济管理学院:何耀琴
说明:成员函数DoModal() 用来生成一个模态对话框
CPropertySheet::DoModal //所属的类
virtual int DoModal(); //是一个虚函数
返回值:
如果函数生成成功则返回IDOK或IDCANCEL;否则返回0或-1。如果此属性表是作为一个向导(参见SetWizardMode)建立的,DoModal返回ID_WIZFINISH或IDCANCEL。
说明:
此成员函数用来显示一个模态对话框。其返回值对应于用来关闭对话框的控件的ID。此函数返回后,Windows响应这个对话框,所有的属性页都会被销毁。而这些对象本身仍然存在。通常,在DoModal返回IDOK之后可以从CPropertyPage对象检取数据。
9
西南交通大学经济管理学院:何耀琴
非模态对话框
非排他方式工作的对话框为非模态对话框。在非模态对话框出现时,用户仍然可以实现与应用程序其他对象的交互。
要生成一个非模态对话框,需调用CDialog类的Create()函数和CWnd类的ShowWindow() 函数来实现。
Create()函数说明如下:
Virtural BOOL Create(LPCTSTR lpszTemplateName,CWnd* pParentWnd=NULL);
Virtural BOOL Create(UNIT nIDTemplate, CWnd* pParentWnd=NULL);
两种形式中,参数lpszTemplateName和nIDTemplate分别指明所使用的对话框模板资源的名字和ID值,参数pParentWnd则指向该对话框的父窗体对象。
10
西南交通大学经济管理学院:何耀琴

西南交通大学经济管理学院何耀琴 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数45
  • 收藏数0 收藏
  • 顶次数0
  • 上传人机械CAD论坛
  • 文件大小0 KB
  • 时间2011-10-12