欢迎来到天天文库
浏览记录
ID:37711540
大小:13.69 KB
页数:6页
时间:2019-05-29
《MFC与对话框》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MFC与对话框1、对话框编辑器设计对话框模板,有两个重要的步骤:1、从工具栏选择控件(control,功能各异的小小零组件)加到对话框2、填写此控件的标题、ID以及其他性质。2、以下利用对话框编辑器设计【PenWidth】对话框的过程。1、在VisualC++集成开发环境中单击【Insert/Resource】——>在【InsertResource】对话框中——>【Resourcetype】为Dialog。2、Scribble。Rc文件被打开,对话框编辑器出现,会自动给我们一个空白的对话框,内含有两个按钮【OK】和【Cancel】,控件工具箱也为出现,如果没有出现,点击视图—
2、—>工具箱,控件工具箱就会出现。3、为控件设定属性。打开【DialogProperties】对话框,在对话框的任何地方单击鼠标右键,【DialogProperties】对话框就会出现。现在修改对话框的ID为IDD_PEN_WIDTHS,把标题改为“PenWidths”.4、为对话框加入两个Edit控件,两个Static控件,以及一个按钮1、鼠标右键单击新增的按钮,在Propertypage中把标题改为“Default”,并把ID改为IDC_DEFAULT_PEN_WIDTHS2、鼠标右键单击第一个Edit控件,在Propertypage中把ID改为IDC_THIN_PEN_W
3、IDTH.以同样的方式把第二个Edit控件的ID改为IDC_THICK_PEN_WIDTH.3、鼠标右键单击第一个Static控件,Propertypage中出现其属性,在Caption项把内容改为“ThinPenWidth:”,以同样的方式把第二个Static控件的内容改为“ThickPenWidth”4、调整每一个控件的位置,使之美观整齐5、调整Taborder,所谓Taborder是指使用者在操作对话框时,按下Tab键后,键盘输入焦点在各个控件上的巡回次序。调整Taborder的方法:【LayOut/TabOrder】命令项。即格式——>Tab键顺序6、测试对话框。单击
4、【LayOut/Test】命令项。1、利用ClassWizard连接对话框与其专用类一旦完成了对话框的外貌设计,再来就是设计其行为,我们有两件事要做:第一件事:从MFC的CDialog中派生出一个类,用来负责对话框的行为。第二件事:利用ClassWizard把这个类和先前你产生的对话框资源连接起来,通常这意味这你必须声明某些函数,用以处理你感兴趣的对话框消息,并将对话框中的控件对应到类的成员变量上,这也就是所谓的DialogDataeXchange(DDX),如果你对变量的内容有任何的“确认规则”的话,ClassWizard也允许你设定之,这就是所谓的DialogDataVa
5、lidation(DDV)。注意:所谓“确认规则”:是指对某些特殊用途的变量进行内容检查工作,例如月份一定是只可能在1~12之间,日期一定只可能是在1~31之间,人名一定不会有数字夹在中间,金钱数额不能夹带文字。对话框的消息处理函数下面是完成上述所说的两件事中的第一件事的步骤:在对话框的任意位置双击鼠标右键,进入ClassWizard,在ClassName项填入类的名称:CPenWidthsDlg,在类声明文件处填写类的PENWIDTH.h声明文件,在类实现项填写:PENWIDTH.H类的实现文件。单击确认按钮于是类就产生了。下面是完成第二件事的步骤:要完成第二件事有两个操作
6、需要完成:1、在CPenWidthsDlg中增加两个变量,分别代表粗笔宽和细笔宽1、在CPenWidthsDlg中增加一个函数,负责【Default】钮被按下后的操作。以下是ClassWizard的操作步骤(增加一个函数)1、进入ClassWizard,选择【messageMaps】选项卡,在选择【ClassName】清单中的CpenWidthsDlg。2、【ObjectsIDs】清单列出对话框中各个控件的ID,请选择其中的IDC_DEFAULT_PEN_WIDTH3、在右侧的【Message】中选择BN_CLICKED,我们处理的是控件,他们产生的消息是特别的一类,称为No
7、tification消息。这种消息控件用来通知父窗口(通常是个对话框)某个事件产生了。4、按下【AddFuncation】钮,接受默认的OnClickDefaultPenWidths函数(也可以更改)5、单击【EditCode】按钮,光标落在OnClickDefaultPenWidths函数身上。对话框数据交换与检验(DDX&DDV)以两个成员变量映射到对话框上的两个Edit字段,当【确认】按钮按下时,第一个Edit字段的内容自动存储m_nThinWidth中,第二个Edit字段的内容自动存储m_nTh
此文档下载收益归作者所有