对话框笔记: A、 、 1、建立单
文档程序,再插入对话框。 、
也可以使用工具栏
来新建。
对话框对应的类 Cdialog.在屏幕上显示一个对话框。 对话框分模态对话框和非模态对话框。 前者在应用
程序能够执行之前必须被关闭掉, 后者允 许我们在显示对话框时可以执行其他程序。 新建一个类与对话框相对应。 选择:
弹出如下对话框:
点击 OK,创建一个新类。 (也可以在对话框资源上双击鼠标左键弹出) 输入类名:
可以点击上图中 Change 改变文件名。点击 OK。
点击 OK.会在 ClassView 中看到新建的 CTestDlg 类。
此类中有两个方法,第一个为构造函数:
调用基类的构造函数,传递 CTestDlg 类中 IDD 成员。 IDD 成员为插入的对话框的 ID 号。 第二个函数完成对话框数据的交换和校验的:
2、下面创建一个对话框的窗口,可以在菜单中去增加一个菜单项。
设置如下:
在对话框上点击右键选择:
选择对菜单项的响应在 View 类完成:
点击添加函数,编辑代码。得如下:
先进行模态对话框的创建,入代码:
非模态对话框的创建:
本例选择模态对话框,首先在对话框上添加一个按钮,右击选属性:
响应 Add 按钮,右键:
设置如下,类选为与对话框关联的 CTestDlg 类:
点击添加函数,编辑代码:
响应 Btn 按钮右击 CTestDlg 类选择增加成员变量:
设置如下:
添加代码:
运行点击 Add 按钮,会弹出维新按钮:
再次点击会弹出一个非法的操作。 要判断,Btn 不能重复创建。添加一个 Bool 类型的成员变量:
将此变量初始化为 FALSE,:
编辑代码:
此时再次点击 Add 按钮,新产生的“维新”按钮会消失。 或者改为如下代码:
添加按钮:
3、下面实现对静态文本框的按键响应: (点击 Number1,静态文本会变为中文“变量 1” ) 先改变静态文本的 ID 号。
右击 Number1,选择:
此时可以看到 IDC_NUMBER1.:
选择增加函数,编辑代码有:
编辑代码:
在运行之前要改变静态文本按钮的属性类型:
在 Notify 前打钩。运行点击文本内容会改变:
再点击会变回来。
B、下面实现两个数的加法运算, 1、第一种方式: 在 OnBtnAdd 函数中编辑代码(函数的代码都注释起来) :
运行,得如下:
2、第二种方式,编辑代码
3、第三种方式:
此段代码可以进行有符号数运算。 4、第四种方式: 可以使编辑框关联成员变量,用此成员变量来操作编辑框上面的数据。 选择 View、ClassWizard.:
如上图,选择增加变量,输入成员变量名,选择类型:
依次 EDIT2、EDIT3。 添加代码:
(第一个 UpdateData 刷新获取编辑框 1、2 的值,第二个 UpdateData 刷新传递编辑框 3 的 值。也
可以设定编辑框输入值的范围。 ) 以上为四种实现方式。 *也可以使每一编辑框关联一个控件变量,代表控件本身:
对第一个控件增加变量:
点击 OK,依次 EDIT2、EDIT3。
可以看到增加了三个控件变量。 5、第五种方式: 添加代码:
如上,可以调用成员函数来实现。 6、第六种方式: 也可用如下代码实现:
7、第七种方式:
也可以 EM_GETSEL 获取复选的编辑框的内容,而不是编辑框的所有内容。EM_SETSEL 设置 复选的开始位置、结束位置。 在以上代码中添加后两行代码:
运行,可以看到辅选的内容。如下:
要全部复选上可以设置参数: 运行如下:
以上是七种访问控件的方式。 总结如下: GetDlgItem()->Get(Set)WindowText() GetDlgItemText()/SetDlgItemText()
GetDlgItemInt()/SetDlgItemInt() 将控件和整型变量相关联 将控件和控件变量相关联 SendMessage() SendDlgItemMessage() 最常见的为第一、第四种。第七种用的最少。
C、实现对话框的扩展与收缩功能。 1、首先在对话框上增加一个按键,改变属性:
控件文本的改变(点击收缩,再点击扩展) ,添加响应函数,在按钮上双击鼠标左键。
点击 OK。增加了对按钮点击进行响应的函数。
添加代码实现收