首页 孙鑫VC++对话框笔记1

孙鑫VC++对话框笔记1

举报
开通vip

孙鑫VC++对话框笔记1孙鑫VC++对话框笔记1 对话框笔记: A、 1、建立单文档程序,再插入对话框。 也可以使用工具栏来新建。 对话框对应的类Cdialog.在屏幕上显示一个对话框。 对话框分模态对话框和非模态对话框。前者在应用程序能够执行之前必须被关闭掉,后者允许我们在显示对话框时可以执行其他程序。 新建一个类与对话框相对应。 选择: 弹出如下对话框: 点击OK,创建一个新类。(也可以在对话框资源上双击鼠标左键弹出) 输入类名: 可以点击上图中Change改变文件名。点击OK。 点击OK.会在ClassVi...

孙鑫VC++对话框笔记1
孙鑫VC++对话框笔记1 对话框笔记: 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设置复选的开始位置、结束位置。 在以上代码中添加后两行代码: 运行,可以看到辅选的内容。如下: 要全部复选上可以设置参数: 运行如下: 以上是七种访问控件的方式。 总结如下: ->Get(Set)WindowText() 将控件和整型变量相关联 将控件和控件变量相关联 SendMessage() SendDlgItemMessage() 最常见的为第一、第四种。第七种用的最少。 C、实现对话框的扩展与收缩功能。 1、首先在对话框上增加一个按键,改变属性: 控件文本的改变(点击收缩,再点击扩展),添加响应函数,在按钮上双击鼠标左键。 点击OK。增加了对按钮点击进行响应的函数。 添加代码实现收缩、扩展变换: 运行可以实现。 2、在对话框上增加一个分隔符,用以表示切割的部分,可以用图像控件添加。 改变属性: 运行可以看到画线: 在以上代码后接着以下代码: 3、可以隐藏掉分隔符 把属性中Visible取消: 再运行就没有分隔符。 D、实现按下回车键使输入焦点从一个编辑框移动到下一个编辑框。 1、当焦点在编辑框内时,按下回车键对话框就关闭了。因为OK按钮为缺省按钮。在属性中可以看到Ddfault Button被选上。 作为一个缺省按钮,当按下键盘上回车键时,就会由个缺省按钮的响应函数对回车键进行响应。在基类的OnOk函数就是让对话框关闭。 可以在子类中覆盖基类中的OnOk函数,双击OK按钮: 点击OK,添加函数如下: 函数是调用基类的OnOk函数。 把用基类OnOk函数注释掉。运行按回车键就不会关闭对话框。 2、在CTestDlg类中添加消息处理: WM_INITDIALOG消息是当对话框创建完成和其上面的子控件创建完成之后,当这个对话框要显示之前发送的一个消息。 找到WM_INITDIALOG,点击增加处理: 点击Edit Existing,得: 先定义一个窗口过程类型,名为prevProc(先前的窗口过程),再实现。 添加代 码如下: 接下来要写新的窗口过程, 在和中插入代码: 在 如下: 后添加return 1; 改变编辑框的属性,选择多行: 运行,按回车就会使焦点从第一个编辑框移到第二个编辑框。 3、也可用GetWindow函数实现,修改语句: 运行,按回车就会使焦点从第一个编辑框移到第二个编辑框。 也可用函数GetNextDlgTabTtem函数实现,修改语句: 4、要让焦点依次往下移动,以上方法很不方便,下面利用缺省按钮响应函数来实现,因为一旦我们在编辑框中按回车键,将由缺省按钮的响应函数来完成,那么我们可以在这个响应函数当中将焦点依次往下传递。 下面先将Edit1属性的多行去掉: 在OnOk函数中添加代码: 此时也只能把光标从第一个编辑框移动到第二个编辑框。 修改代码: 运行,可以移动焦点,但移到最后一个按钮就会出现错误: 到最后一个窗口时就不会得到下一个窗口。 再次修改代码: 此函数会使焦点在对话框中的按钮中循环移动(按照按钮顺序): 顺序可点击如下查看: 点击可以改变序号。 回车键由缺省按钮函数响应。
本文档为【孙鑫VC++对话框笔记1】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_882336
暂无简介~
格式:doc
大小:37KB
软件:Word
页数:0
分类:工学
上传时间:2017-10-17
浏览量:35