MFC中添加消息响应函数
转自:http://blog.csdn.net/eddy_liu/article/details/8474677
目前,用MFC设计的Windows应用程序几乎都采用文档/视图结构。这种程序框架与简单程序框架之间的重要区别就在于形成应用程序的主窗口不只需要一个类的对象,而是需要3个对象:
- 框架窗口类(CFrameWnd)对象
- 视图类(CView)对象
- 文档类(CDocument)对象
框架窗口类(CFrameWnd)对象作为窗口的框架,视图类(CView)的对象作为贴附在框架窗口上的用户区,二者共同形成了应用程序的界面;而文档类对象CDocument对象则在幕后专门对数据进行存储和管理。在应用程序类CWinApp中,使用文档模板把3个类的对象组装在一起,从而形成一个完整的程序实体。在文档/视图结构的应用程序中,对于消息响应的添加和管理是至关重要的,这里我们通过一个简单的例子介绍在MFC中如何添加消息响应函数。
- 首先,我们建立一个简单的文档/视图结构的应用程序esayApp(在应用向导中基本遵从默认即可),如图所示:

- 在菜单的资源编辑器中添加“testMessage”选项,如下图所示:


- 现在,我们在视图类中添加该菜单的消息映射和消息响应函数。
- 在simpleAppView.cpp中添加新的消息映射:

- 在simpleAppView.h中添加消息响应函数的声明:

- 最后在simpleAppView.cpp中添加消息响应函数是实现:


- 设置事件触发的ID,并在Resource.h中指定具体值(有些版本会自动生成)。
- 在xxxView.cpp中添加新的消息映射:ON_COMMAND( , )。
- 在xxxView.h中添加消息响应函数的声明:afx_msg void fun_xxx()
- 在xxxView.cpp中添加新的消息响应函数的具体实现:void fun_xxx()
MFC中添加消息响应函数的更多相关文章
- vs2015 MFC工程添加消息响应函数
真不知道这PPT怎么描述的..最后窝找到了解决方法如上图.. 下次找MSDN解决问题好了..而且我们并不知道他所说的这个IDE到底是哪个厂商哪个版本的IDE这就很困惑 不过呢..它主要是让我们添加消息 ...
- VC中添加消息响应函数
1. 添加消息映射 2. 头文件中添加函数声明 3. 实现文件中添加函数定义
- VS2010 MFC中 给菜单项添加消息响应函数
久了没用,居然忘记了该怎样给菜单项添加响应函数了~~~~~~~~T_T 特记于此: 1. 在资源视图的Menu里找到自己要添加的菜单,然后输入菜单项. 2. 右击菜单项选属性,设置Popup为Fals ...
- MFC中添加OpenGL
WINDOWS下展示OpenGL有多种形式: MFC 或 win32,该如何向MFC中添加OpenGL?下面是介绍最简单OpenGL框架. 1.首先通过VS建立MFC应用程序-MyOpenGL,选择单 ...
- MFC中添加ToolTip提示框
PART 1 MFC 对话框中的 Buttton添加提示 例如我们想在一个对话框中的一个button控件添加tooltip,实现的方法如下: 1. 在该对话框的类中添加一个CToolTipCtrl类型 ...
- 在MFC中添加OpenGL窗口
虽然MFC已经落伍好多年,而且用来做界面非常的不好用...但是我既不会C#也不会QT,又需要使用OpenGL,就只能将就用了... 一.首先介绍Windows图像程序设计中几个重要的概念: G ...
- MFC中添加了一个dialog,并创建了相应的类,初始化函数没有怎么办?
1.在头文件中添加 virtual BOOL OnInitDialog();2.在对于的CPP文件中添加 BOOL CXXDlg::OnInitDialog() { return TR ...
- MFC中添加新的对话框
MFC工程中,除了系统自动生成的一些对话框之外,还需要根据自己的需求,添加新的对话框.这里总结下自己最近使用的方法. 首先,找到Resource View中自己新建的工程,然后右键,选择Add Cla ...
- 在MFC中添加用户自定义消息
1.定义一个宏 (用户自定义消息从WM_USER开始) #define WM_XXXXX WM_USER+数值 2.声明一个函数并实现 afx_msg LRESULT OnXXXXX( WPARAM ...
随机推荐
- LINUX下为ORACLE数据库设置大页--hugepage
在Linux中配置hugepage可以提高oracle的性能,减少oracle sga的页交换,类似于aix中的lagepage. 为什么 使用大页? LINUX内存的默认块大小是4K如果SGA为:1 ...
- Yii2.0 执行流程分析
1 index.php 2 ---->引入 vendor/auto_load.php 3 auto_load.php 4 ---->引入 ventor/composer/autoload_ ...
- 使用Navicat V8.0创建数据库,外键出现错误ERROR 1005: Can’t create table (errno: 121)
ERROR 1005: Can't create table (errno: 121) errno 121 means a duplicate key error. Probably the tabl ...
- stl 迭代器(了解)
STL 主要是由 containers(容器),iterators(迭代器)和 algorithms(算法)的 templates(模板)构成的. 对应于它们所支持的操作,共有五种 iterators ...
- hdu 1003 Max Sum(动态规划)
解题思路: 本题在给定的集合中找到最大的子集合[子集合:集合的元素的总和,是所有子集合中的最大解.] 结果输出: 最大的子集合的所有元素的和,子集合在集合中的范围区间. 依次对元素相加,存到一个 su ...
- windows2008R2安全加固
一.更改终端默认端口号 步骤: 1.运行regedit 2.[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\W ...
- php统计字数函数
function countWords($str){ echo (mb_strlen($str, 'utf8') + strlen($str))/2; }
- Linux samba配置
更详细的配置地址:http://www.cnblogs.com/mchina/archive/2012/12/18/2816717.html 1 安装 yum -y install samba 2 ...
- Java Socket发送与接收HTTP消息简单实现
在上次Java Socket现实简单的HTTP服务我 们实现了简单的HTTP服务,它可以用来模拟HTTP服务,用它可以截获HTTP请求的原始码流,让我们很清楚的了解到我们向服务发的HTTP消息的结 构 ...
- redhat RHEL 5.5 下载地址
redhat RHEL 5.5 下载地址 RHEL 5 update 5 已经release许久了, redhat RHEL 5.5 下载地址: RHEL 5 安装 序列号 rhel-server-5 ...