MFC 对话框和常用教程.doc
文本预览下载声明
第五章 对话框和常用控件
对话框是Windows应用程序中最重要的用户界面元素之一,是与用户交互的重要手段,在程序运行过程中,对话框可用于扑捉用户的输入信息或数据。对话框是一个特殊类型的窗口,任何对窗口进行的操作(如:移动、最大化、最小化等)都可在对话框中实施,一般来说,在对话框中通过各种控件(如:按钮、编辑框、列表框、组合框等)来和用户进行交互。控件是在系统内部定义的用于和用户交互的基本单元。
一、对话框的使用
Visual C++提供的对话框编辑器能“可视”地进行设计、编辑,并可用
ClassWizard为对话框从CDialog基类中派生一个类,MFC的CDialog类封装了用于对话框的显示、关闭等操作的许多功能函数,例如:DoModal函数用来显示模式对话框并返回用户操作的结果。
1、模式对话框(为186附加举例页)
所谓模式对话框是指,当对话被弹出时,用户必须在对话框中进行相应的操作,在退出对话框之前,对话框所在的应用程序不能继续执行。平常我们所见到的对话框大多是模式对话框。
例:模式对话框(通过菜单命令弹出)
建一个单文档(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、无模式对话框(为186附加页)
非模式对话框,弹出后,可一直保留在屏幕上,用户可继续在应用中进行其它操作或启动其它应用程序,当需要使用对话框时,只需象激活一般窗口一样激活对话框即可。
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);//显示对话框
}
二、使用对话框编辑器(对话框编程)(187页)
*1、可建一个单文档应用程序名为“对话框编程”,在此程序中加入一个对话框:
Insert(Resource(点黑Dialog(new 出现188页的图
2、拖入一些控件,对
显示全部