- 1、本文档共107页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VC_第3章_對话框与控件
第3章 对话框与控件
本章我们将了解如何应用Visual C++6.0创建并使用对话框,如何在对话框中添加控件,并将控件连接到代码中;以及如何查找、设置对话框和控件的各种属性等。
对话框是一种弹出式的特殊窗口,几乎所有的Windows应用程序都要借助于对话框来和用户打交道;它主要用来实现应用程序和用户之间的信息交互。对话框上必须有相应的控件,通过控件,对话框可以收集用户的信息或向用户提供信息显示。对话框是一种非常有用的资源,它的主要功能有两个,一是发送消息,二是接收输入;对话框分为两类,一是模式对话框,二是非模式对话框;另外还可以直接建立基于对话框的应用程序。
3.1 对话框的使用
Visual C++6.0提供的对话框编辑器能“可视”地进行设计、编辑对话框,并可用ClassWizard为对话框从CDialog基类中派生一个类;MFC的CDialog类封装了用于对话框的显示、关闭等操作的许多功能函数,例如:DoModal函数用来显示模式对话框并返回用户操作的结果。在Visual C++6.0应用程序中,使用一个对话框的一般过程是:
(1)添加对话框资源;
(2)设置对话框的属性;
(3)添加和布局控件;
(4)创建对话框类;
(5)添加对话框代码;
(6)在程序中调用对话框。
例3.1 模式对话框
所谓模式对话框是指当对话被弹出时,用户必须在对话框中进行相应的操作,在退出对话框之前,对话框所在的应用程序不能继续执行。平常我们所见到的对话框大多是模式对话框。建立模式对话框的步骤如下:
(1)建一个SDI(单文档)应用程序,名为:模式对话框
(2)创建对话框模板的过程是:鼠标放到顶层菜单,点击 Insert?Resource?选中Dialog?单击New;在页面右边就显示出了对话框模板。再将鼠标放到控件工具栏上,左键单击静态文本(Aa)控件不放,移动到对话框上的合适位置,放开左键,静态文本(Aa)控件就添加到对话框上了。鼠标右键对准这个静态文本控件单击,便出现快捷菜单,选择属性(properties)单击?出现属性对话框?在标题(Caption)框中写:“新建模式对话框”,关闭属性对话框,“新建模式对话框”字样就显示在这个静态文本控件上。
(3)修改对话框ID:鼠标右键对准对话框的任何位置单击,出现快捷菜单,选择属性(properties)选项,出现属性(Dialog properties)对话框,将对话框的ID设置为IDD_MYDIALOG,标题(Caption)写:模式对话框
(4)给对话框创建类: 双击对话框的任何位置?出现Adding a Class对话框?选Create a new class,单击OK?出现New Class对话框,在Name框中写类名为:CMyDlg?单击OK,这样就建成了对话框类:CMyDlg。
(5)建一个顶层菜单,ID为ID_PUPDIALOG,标题为:模式对话框(A) 的菜单命令。
(6)将菜单(ID_PUPDIALOG)命令映射到主框架类CMainFrame中并加代码:
void CMainFrame::OnPupdialog()
{ CMyDlg MyDlg; // CMyDlg是CDialog的派生类,这里是定义对话框类对象
MyDlg.DoModal(); //DoModal()是CDialog类成员函数,调用该函数来显示对话框。
}
(7)在CMainFrame.cpp文件的前面加文件包含:
#include “MyDlg.h”
(8)编译运行,见图3.1.1所。只能在对话框中进行相应的操作,其它不能操作。
图3.1.1 模式对话框 图3.1.2 无模式对话框
例3.2 无模式对话框
无模式对话框,弹出后,可一直保留在屏幕上,用户可继续在应用中进行其它操作或启动其它应用程序,当需要使用对话框时,只需象激活一般窗口一样激活对话框即可。
(1)建一个SDI(单文档)应用程序,名为:无模式对话框
(2)按上例步骤创建对话框模板,拖过一个静态文本,其属性对话框上的ID不动,在
标题框写:新建无模式对话框
(3)为对话框创建类,类名为:CDlg
(4)创建菜单,菜单名字为:无模式对话框(W),ID为ID_DLG
(5)将菜单消息(ID_DLG)映射到视图类(CMyView)中。
(6)在视图类头文件CMyView.h的前面加文件包含:#include “Dlg.h”
在public:下加:CDlg *dlg; //定义对话框类指针对象
在视图类执行文件CMyView.cpp的菜单
文档评论(0)