- 1、本文档共56页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MFC對话框及控件的应用
第4章 对话框和常用控件
对话框是Windows应用程序中最重要的用户界面元素之一,是与用户交互的重要手段,在程序运行过程中,对话框可用于扑捉用户的输入信息或数据。对话框是一个特殊类型的窗口,任何对窗口进行的操作(如:移动、最大化、最小化等)都可在对话框中实施,一般来说,在对话框中通过各种控件(如:按钮、编辑框、列表框、组合框等)来和用户进行交互。控件是在系统内部定义的用于和用户交互的基本单元。
4.1对话框的使用
Visual C++提供的对话框编辑器能“可视”地进行设计、编辑,并可用ClassWizard为对话框从CDialog基类中派生一个类,MFC的CDialog类封装了用于对话框的显示、关闭等操作的许多功能函数,例如:DoModal函数用来显示模式对话框并返回用户操作的结果。
在Visual C++6.0应用程序中,使用一个对话框的一般过程是:(1)添加对话框资源;(2)设置对话框的属性;(3)添加和布局控件;(4)创建对话框类;(5)添加对话框代码;(6)在程序中调用对话框。例如:
例1:模式对话框(为175页附加举例)
所谓模式对话框是指,当对话被弹出时,用户必须在对话框中进行相应的操作,在退出对话框之前,对话框所在的应用程序不能继续执行。平常我们所见到的对话框大多是模式对话框。
例:模式对话框(通过菜单命令弹出)
建一个单文档(SDI)应用程序
创建对话框模板
Insert?Resource?选中Dialog?单击New
拖过一个静态文本,鼠标对准它,按右键点properties改标题为“新建模式对话框”。
3)鼠标右键对准对话框的任何位置单击,选择properties选项,设置ID为IDD_MYDIALOG
4)给对话框创建类
双击新建对话框的任何位置,单击OK,写类名为“CMyDlg”,保
证”CDialog”作为该类的基类。
5)创建菜单命令:
打开资源编辑器的菜单项Menu
双击IDR_MAINFRAME
双击右边空白菜单,点开pop_up(让它是空白),在名字处写”弹出对话框(A)”,ID处写ID_PUPDIALOG
6)将菜单命令连接到主框架程序中,完成ID_PUPDIALOG的消息映射:
View?ClassWizard?保证Class name里是CMainFrame,在ObjectIDs
里找到ID_PUPDIALOG点黑?Messages里(右边)点COMMAND建立主框架对象方法并加代码:
void CMainFrame::OnPupdialog()
{ CMyDlg MyDlg;
MyDlg.DoModal(); //DoModal()是CDialog类成员函数,通过调用该
//函数将显示对话框。
}
7)在CMainFrame.cpp文件里加:
#include “MyDlg.h” // 之后运行。
例2:无模式对话框(为175页附加举例)
非模式对话框,弹出后,可一直保留在屏幕上,用户可继续在应用中进行其它操作或启动其它应用程序,当需要使用对话框时,只需象激活一般窗口一样激活对话框即可。
1)建一个SDI(单文档)应用程序
2)创建对话框模板
Insert?Resource?点黑Dialog?New
拖过一个静态文本,鼠标对准它,按右键点properties改标题为“新建非模式对话框”。
3)为对话框创建类
点出对话框(IDD_DIALOG1缺省的ID号),双击对话框中的任意位置,出现一个表,你点OK?出现一个对话框,你写类名:CDlg保证基类为CDialog
4)创建菜单
打开工作区?Menu?IDR_MAINFRAME?双击空白菜单写“非模式对话框”关闭?再点下面空菜单写名字“显示非模式对话框”ID处写ID_DLG.
添加菜单命令消息
Wiew?ClassWizard?Message Maps?保证Class name里是Wiew类(视图类),在Object IDS里找到ID_DLG(菜单的ID)点黑右边COMMAND双击它?OK
6)a、你在Wiew.h里加:#include “Dlg.h”
b、在public:里加:CDlg *dlg;//创建CDlg对象
c、在View.cpp的OnDlg()函数里加:
CMyView::OnDlg()
{
dlg=new CDlg(this);
dlg-Create(IDD_DIALOG1);//使对话框摸板从资源中创建一个非
//模式对话框
dlg-ShowWindow(SW_RESTORE);//显示对话框
}
4.1.1资源
文档评论(0)