VC2008中如何为MFC应用程序添加和删除消息响应函数
最近重温《MFC Windows应用程序设计》第二版这本书,里面的代码全部是使用VC6.0写的,我Win7下安装的是VS2008开发环境。
VC2008下添加和删除常见的消息响应函数有两种方法:自动和手动。
一、VC2008中自动添加消息响应函数
举一个《MFC Windows应用程序设计》的MFC单文档应用程序的例子,如下:
例4-9 设计一个利用CClientDC绘图,在窗口单击鼠标左键之后,在窗口的用户区出现一个菱形的应用程序。
(1) 在MFC AppWizard中创建一个名称为MFCexp4_9的单文档应用程序。
(2) 在视图类的OnLButtonDown()函数中输入如下代码。
void CMFCexp4_9View::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CClientDC dc(this); //定义一个CClientDC的对象dc
CRect rect; //定义一个描述矩形的对象rect
GetClientRect(&rect); //获得窗口用户区的尺寸,并存入到rect
//以下是绘制菱形的代码
dc.MoveTo(0,(rect.bottom+rect.top)/2);
dc.LineTo((rect.left+rect.right)/2,0);
dc.LineTo(rect.right,(rect.bottom+rect.top)/2);
dc.LineTo((rect.right+rect.left)/2,rect.bottom);
dc.LineTo(0,(rect.bottom+rect.top)/2);
CView::OnLButtonDown(nFlags, point);
}
其实在VS2008中添加消息响应函数的办法蛮简单的,方法如下:
假如创建了一个名为Example的MFC单文档应用程序,则在VS2008中右键单击类视图中的CExampleView类,选中【Properties】,在属性页中选择【Messages】项,其中有WM_LBUTTONDOWN的鼠标左键按下的消息,点击消息后面的Add或者Delete即可一键添加或者删除消息响应函数以及对应的消息映射宏了。如下图所示:
新浪博主百里无二转载的一篇博文很简洁:
VC2008 中添加MFC消息处理函数具体步骤如下:
· 1.在类视图中,右键需要添加处理函数的类,选择属性。
· 2.在“属性”窗口中,单击“消息”按钮。
· 3.在消息列表框中,选择需要添加的消息。
· 4.这样就可以在代码框中看到,OnCreate已经添加了。
想要删除的话再到消息框中选删除就可以了。
二、VC2008中手动添加或删除消息响应函数
可以参照CSDN博主kivcare这篇博客:Vc2008中如何为视图类添加消息响应,他的方法是手动添加消息响应函数,删除的话就是逆过程了。手动删除消息响应函数需要删掉三个地方,以删除菜单响应函数为例时包括以下三个部分:
1、头文件中的定义,如afx_msg void OnDialogModel();
2、源文件中的消息响应,如:ON_COMMAND(ID_DIALOG_MODEL, &CMyboleView::OnDialogModel)
3、源文件中具体的函数体,例如void CMyboleView::OnDialogModel()函数的定义实现部分:
看来以后得多使用一下VS2008这套工具,可以通过学习MFC和Win32应用程序多加练习。
VC2008中如何为MFC应用程序添加和删除消息响应函数的更多相关文章
- 在Unicode版Inno Setup中使用ISSkin给安装程序添加皮肤
原文 http://www.cnblogs.com/2356/archive/2009/10/27/1590565.html 在Unicode版Inno Setup中使用ISSkin给安装程序添加皮肤 ...
- CentOS7安装CDH 第八章:CDH中对服务和机器的添加与删除操作
相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...
- MFC开发中添加自定义消息和消息响应函数
(1)在.h或.cpp文件定义一个消息 #define CLICK_MESSAGE_BOX WM_USER+1001 //add by 20180612 给主窗口ctrl.cpp发送消息 //自定义消 ...
- 【转载】MFC动态创建控件及其消息响应函数
原文:http://blog.sina.com.cn/s/blog_4a08244901014ok1.html 这几天专门调研了一下MFC中如何动态创建控件及其消息响应函数. 参考帖子如下: (1)h ...
- MFC动态创建控件及其消息响应函数
这几天专门调研了一下MFC中如何动态创建控件及其消息响应函数. 参考帖子如下: (1)http://topic.csdn.net/u/20101204/13/5f1b1e70-2f1c-4205-ba ...
- VS2008中编译运行MFC应用程序时,出现无法启动程序,因为计算机中丢失mfc90ud.dll的解决方案
解决方法:"工具"->"选项"->"项目和解决方案"->"VC++目录",在可执行文件栏中加上如 ...
- Android中为你的应用程序添加桌面快捷方式
public void ShortCut(View view){ createDeskShortCut(this,getString(R.string.short_cut),R.drawable.up ...
- django orm 改动数据库中已存在的表(添加、删除、修改表字段)
python3 manage.py makemigrations --empty api # 因为我的models.py文件并直接在项目根目录,而是根目录下的api目录中 python3 manage ...
- Vue中组件化编码 完成任务的添加、删除、统计、勾选需求(实战练习三完结)
上一个章节实现数据在组件之间的传递 .这一章主要是完成添加任务到任务栏.删除任务栏.统计任务完成情况.主要还是参数在各个组件之间的传递. 上一章节的链接地址:https://blog.csdn.net ...
随机推荐
- js设置cookies
//写入cookies的方法 function setCookie(name, value, seconds) { seconds = seconds || 0; //seconds有值就直接赋值,没 ...
- bootstrap3-javascript插件- 慕课笔记
bootstrap支持的js插件 说明:文中内容系本人在某网站学习笔记,本着本站禁止推广的原则,在此就不著明学习站点的名称及地址.其实开博客的目的也就是为了方便记录学习,因为平时本地的记录太多丢三落四 ...
- QT下载与安装
1.下载地址:https://www.qt.io/download-open-source/ 2.qt5.5:http://download.qt.io/development_releases/qt ...
- viewport的深入调研
1.viewport概念:viewport就是设备的屏幕上能用来显示我们的网页的那一块区域. viewport的默认值980px或1024px等,以下是浏览器的默认viewport宽度 2.css中的 ...
- js数据处理-----数据拷贝
一.理解深拷贝与浅拷贝 如下代码,把 a 的值赋给 b ,修改 b 的值会直接修改到 a 的值,这叫浅拷贝.(其实他们修改的是同一个对象) var a = [1,2,3,4,5]; var b ...
- jQuery对于demo元素的上移、下移、删除操作等实现
今天给大家分享一个实用的jQuery技能:dom元素的操作:我们经常会去获取dom元素去实现交互效果,以及数据的操作. 首先复习一下jQuery DOM 元素方法: .get() 获得由选择器指定的D ...
- SpringBoot入门简介
SpringBoot诞生的背景 所有软件行业里面,如果要说商用体系,排在第一位的永远是java,因为java的体系丰富,支持度高,安全性也高 但是我们所有的开发者也不得不去忍受Java中的以下痛苦 举 ...
- [转]图片压缩功能在JBoss AS7出错有关问题
图片压缩功能在JBoss AS7出错问题近日在为平台(http://www.zyiqibook.com)做些小的整改,途中基本很顺利,但就在后面出现了些纠结的问题,而这问题我之前遇到过,因为一时没有想 ...
- postman使用之四:设置读取变量和切换环境
postman提供了environment管理功能,想要在多个环境中测试,比如在测试环境.灰度环境.生产环境等,只需要用同样的接口,切换下环境即可,非常方便.具体步骤: 设置环境变量 1.点击man ...
- MariaDB 管理
在尝试运行MariaDB之前,首先确定其当前状态,运行或关闭. 有三个选项用于启动和停止MariaDB - 运行mysqld(MariaDB脚本). 运行mysqld_safe启动脚本. 运行mysq ...