欢迎来到天天文库
浏览记录
ID:43805022
大小:1.01 MB
页数:76页
时间:2019-10-14
《第6章 对话框和标准控件》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第6章对话框和标准控件对话框是Windows应用程序中一种常用的资源,其主要功能是输出信息和接收用户的输入数据。控件是嵌入在对话框中或其它父窗口中的一个特殊的小窗口,它用于完成不同的输入、输出功能。对话框与控件关系密切,在每个对话框上一般都有一些控件,对话框依靠这些控件与用户进行信息的交互。本章主要介绍对话框的工作原理和编程方法,并通过实例学习一些标准控件和公共控件的使用方法。6.1对话框概述在MFC中,对话框的功能被封装在CDialog类中,而CDialog类是CWnd类的派生类。作为窗口,对话框和其它窗口一样具有窗口的一切功能。对话框
2、的一个典型应用是通过菜单命令或工具栏按钮打开一个对话框,当然,对话框也可以作为一个程序的主界面。6.1.1基于对话框的应用程序可以直接利用MFCAppWizard向导创建一个基于对话框的应用程序,这种程序运行后首先出现一个对话框。在向导的第一步选择DialogBased项。此时,应用程序向导将出现与单文档和多文档程序向导不同的操作步骤,因为对话框应用程序一般不包含文档,故不支持数据库和复合文档。按照对话框应用程序向导提示的步骤进行操作就得到一个对话框应用程序项目,出现对话框编辑器和控件工具栏浮动窗口,它们采用的是一种所见即所得的可视化工作
3、方式。利用向导创建应用程序的框架后,程序员可根据程序具体功能要求添加代码。例编写一个对话框应用程序MyDialog,程序运行后显示一个对话框,并在对话框上显示文本串。1.执行File
4、New命令出现New对话框,选择MFCAppWizard[exe]项,输入程序名MyDialog,单击OK按钮。在随后出现的MFCAppWizard-Step1对话框窗口中选择DialogBased选项,单击Finish按钮就创建了应用程序项目,并在DeveloperStudio中打开了对话框编辑器和控件工具栏。2.去掉对话框中标题为“TODO:在这里设置对
5、话控制”的静态文本控件,调整对话框大小,在成员函数CMyDialogDlg::OnPaint()中添加代码。voidCMyDialogDlg::OnPaint(){......else{CPaintDCdc(this);dc.SetBkMode(TRANSPARENT);//背景设透明dc.TextOut(20,50,"这是一个对话框应用程序!");CDialog::OnPaint();}}6.1.2对话框类CDialogMFC提供了一系列对话框类,并实现了对话框消息响应和处理机制。CDialog类是对话框类中最重要的类,我们在程序中创建
6、的对话框类一般都是CDialog类的派生类。CDialog类还是其它所有对话框类的基类,其派生关系如下所示:CObjectCCmdTargetCWndCDialog对话框类为程序员提供了管理对话框的编程接口。CDialog类从CWnd类派生而来,所以它继承了CWnd类的成员函数,具有CWnd类的基本功能,可以编写代码移动、显示或隐藏对话框,并能根据对话框的特点增加新的成员函数,扩展它的功能。在CDialog类的派生类中可以直接调用CDialog类的成员函数。大部分的成员函数是虚函数,可以在派生类中重载,以实现特定的目的。除了CDialog
7、类成员函数,类CWnd和CWinApp也提供了一些成员函数用于对话框的管理。对话框的分类对话框主要有以下两种:(1)模态对话框在对话框关闭之前,用户无法在应用程序的其他窗口中进行工作的对话框称为模态对话框。例如,Windows的各种应用软件中的OpenFile对话框。用户不能在应用程序的其他地方工作,直到模态对话框关闭。(2)非模态对话框对话框保留在屏幕的同时,用户还可以在应用程序其他窗口中进行工作的对话框称为非模态对话框。例如,Word字处理软件中的Find和Replace对话框就是非模态对话框的例子。有关对话框的常用处理函数CDial
8、og::CDialog()通过调用派生类构造函数,根据对话框资源模板定义一个对话框。CDialog::DoModal()激活模态对话框,显示对话框窗口。CDialog::Create()根据对话框资源模板创建非模态对话框窗口。如果对话框不是Visible属性,还需通过调用CWnd::ShowWindow()函数显示非模态对话框窗口。CDialog::OnOk()单击OK按钮时调用该函数,接收对话框输入数据,关闭对话框。CDialog::OnCancel()单击Cancel按钮或按Esc键时调用该函数,不接收对话框输入数据,关闭对话框。CD
9、ialog::OnInitDialog()WM_INITDIALOG消息处理函数,在调用DoModal或Create函数时系统发送WM_INITDIALOG消息,在显示对话框前调用该函数进行初
此文档下载收益归作者所有