MFC学习笔记——CDialog(为控件添加消息处理函数)
来源:互联网 发布:tensorflow 谷歌 编辑:程序博客网 时间:2024/06/06 13:10
转自 http://www.jizhuomi.com/school/c/158.html
MFC为对话框和控件等定义了诸多消息,我们对它们操作时会触发消息,这些消息最终由消息处理函数处理。比如我们点击按钮时就会产生BN_CLICKED消息,修改编辑框内容时会产生EN_CHANGE消息等。一般为了让某种操作达到效果,我们只需要实现某个消息的消息处理函数。
添加消息处理函数
以“为按钮添加消息处理函数”为例,方法有以下4种。
1.使用Class Wizard添加消息处理函数
^_^用过的VC++ 6.0的朋友应该对Class Wizard很熟悉了,添加类、消息处理函数等经常会用到它,可以说是一个很核心的功能。但从VS2002开始就见不到Class Wizard了,大部分功能都集成到对话框和控件等的属性中了,使用很方便。到VS2010,久违的Class Wizard又回来了。但鸡啄米已经习惯了使用属性中的功能了,对于从VC++ 6.0直接转VS2010的朋友可能觉得还是使用Class Wizard比较习惯。
^_^大家应该记得,“计算”按钮的ID为IDC_ADD_BUTTON,上图中Commands标签下,Oject IDs列表中有此ID,因为我们是想实现点击按钮后的消息处理函数,所以在Messages列表中选择BN_CLICKED消息,然后点右上方的Add Handler就可以添加BN_CLICKED消息处理函数OnClickedAddButton了。当然你也可以改名,但一般用的默认的就可以。
2.通过“Add Event Handler…”添加消息处理函数
^_^在“计算”按钮上点右键,然后在右键菜单中选择菜单项“Add Event Handler…”,弹出“Event Handler Wizard”对话框,如下图:
^_^可见“Message type”中默认选中的就是BN_CLICKED消息,函数名和所在类都已经自动给出,直接点“Add and Edit”就可以了。
3.在按钮的属性视图中添加消息处理函数
^_^上面说过,从VS2002开始就主要从属性视图添加消息处理函数了。我们在“计算”按钮上点右键,在右键菜单中选择“Properties”,右侧面板中会显示按钮的属性视图。
^_^我们可以像上图中那样,点属性视图的“Control Events”按钮(类似闪电标志),下面列出了“计算”按钮的所有消息。我们要处理的是BN_CLICKED消息,点其右侧空白列表项,会出现一个带下箭头的按钮,再点此按钮会出现“ OnBnClickedAddButton”选项,最后选中这个选项就会自动添加BN_CLICKED处理函数了。
4.双击按钮添加消息处理函数
^_^最直接最简单的方法就是,双击“计算”按钮,MFC会自动为其在CAdditionDlg类中添加BN_CLICKED消息的处理函数OnBnClickedAddButton()。
在消息处理函数中添加自定义功能
^_^在我们使用任意一种方法添加了消息处理函数以后,都只能得到一个空的OnBnClickedAddButton()函数的函数体,要实现我们想要的功能,还需要在函数体中加入自定义功能代码。
^_^在加法计算器程序中,我们想要“计算”按钮实现的功能是,获取被加数和加数的数值,然后计算它们的和并显示到和的编辑框里。那么,OnBnClickedAddButton()的函数体就应修改为:
void CAdditionDlg::OnBnClickedAddButton() { // TODO: Add your control notification handler code here // 将各控件中的数据保存到相应的变量 UpdateData(TRUE); // 将被加数和加数的加和赋值给m_editSum m_editSum = m_editSummand + m_editAddend; // 根据各变量的值更新相应的控件。和的编辑框会显示m_editSum的值 UpdateData(FALSE); }
- MFC学习笔记——CDialog(为控件添加消息处理函数)
- MFC学习笔记——CDialog(添加控件)
- MFC学习笔记——CDialog(创建对话框类和添加控件变量)
- MFC学习笔记——CDialog(设置对话框控件的Tab顺序)
- MFC学习笔记——CDialog入门
- VS2010/MFC编程入门之八(对话框:为控件添加消息处理函数)
- VS2010/MFC编程入门之八(对话框:为控件添加消息处理函数)
- VS2010/MFC编程入门之八(对话框:为控件添加消息处理函数)
- VS2010/MFC编程入门之九(对话框:为控件添加消息处理函数)
- VS2013/MFC编程入门之八(对话框:为控件添加消息处理函数)
- VS2013/MFC编程:(对话框:为控件添加消息处理函数)
- VS2013/MFC编程入门(对话框:为控件添加消息处理函数)
- C++ MFC / VS2013 之七 (对话框:为控件添加消息处理函数)
- VS2010/MFC编程入门之三(Ribbon界面开发:使用更多控件并为控件添加消息处理函数)
- VS2010/MFC编程入门之五十四(Ribbon界面开发:使用更多控件并为控件添加消息处理函数)
- 为控件添加消息处理函数
- 【VS2010学习笔记】【函数学习】一(MFC+OpenCV2.4.7读取摄像头之WM_TIMER消息处理函数的添加问题)
- MFC控件积累——CDialog
- 51nod 1268 DFS
- 五 skylable客户端操作
- nginx配置引发的403问题
- java中使用sax解析xml,以实体类集合的方式接受xml解析的值
- ios打包ipa的四种实用方法(.app转.ipa)
- MFC学习笔记——CDialog(为控件添加消息处理函数)
- [CodeChef-LTIME36]Akhil Recovers The Lost Array
- 悲观锁和乐观锁
- vim与复制,删除,粘贴,块操作以及快速替换功能
- 【腾讯Bugly干货分享】浅谈Android自定义锁屏页的发车姿势
- Block循环引用问题
- [poj 1961]Period[kmp]
- Android绘图——圆圈+水波
- Git新手必备命令整理