专栏首页ccf19881030的博客VC2008中如何为MFC应用程序添加和删除消息响应函数

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应用程序多加练习。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Go by Example 中文:字符串函数

    标准库的 strings 包提供了很多有用的字符串相关的函数。这里是一些用来让你对这个包有个初步了解的例子。 对应的示例测试程序如下:

    ccf19881030
  • go语言相关资料

    Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, ...

    ccf19881030
  • vim-tabe多标签切换

    原文链接:https://www.cnblogs.com/liqiu/archive/2013/03/26/29819...

    ccf19881030
  • 中国指挥与控制学会刘玉超:智能车产业化必须要考虑3个要素(18PPT)

    【新智元导读】中国指挥与控制学会副秘书长刘玉超18日在自动化学会与新智元携手举办的首届 AI WORLD 2016世界人工智能大会 智能驾驶论坛上发表演讲。他的...

    新智元
  • 苹果获批自动驾驶新专利,跨传感器融合数据做更明智决策

    周二,美国专利商标局授予苹果一项新专利,名为“跨传感器处理管道共享传感器数据”。在这项专利中,苹果提出在自动驾驶汽车系统内的多个过程中,可以对收集到的数据进行更...

    镁客网
  • 腾讯 AI Lab 2018年度回顾

    ? 2018年是颇具意义的一年,以“Make AI Everywhere”为愿景,我们在医疗、农业和公益等AI应用领域取得不错进展,也正在通过游戏和机器人等实...

    腾讯技术工程官方号
  • 智能汽车破局,需要哪五个关键点?

    硅谷现有两家现象级公司,一家是Uber,共享经济的翘楚;另一家则是Tesla,代表着汽车业未来的大势所趋:智能化。从被捧上神坛到销量低迷,Tesla的经历可谓“...

    罗超频道
  • vue的处理过程 原

    一个vue实例被生成后还要绑定到某个html元素上,之后还要进行编译,然后再插入到document中。每一个阶段都会有一个钩子函数,方便开发者在不同阶段处理不同...

    双面人
  • Python开发个人专属表情包网站

    “表情包”是一种利用图片来表示感情的一种方式。表情包是在社交软件活跃之后,形成的一种流行文化,表情包流行于互联网上面,基本人人都会发表情。

    python学习教程
  • 机器学习系列:(四)从线性回归到逻辑回归---续篇

    欢迎小伙伴们回来继续学习,本篇内容是连着上一篇 “机器学习系列:(四)从线性回归到逻辑回归”文章。 多类分类 现实中有很多问题不只是分成两类,许多问题都需要分成...

    小莹莹

扫码关注云+社区

领取腾讯云代金券