zoukankan      html  css  js  c++  java
  • 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应用程序多加练习。

    
    
  • 相关阅读:
    Vue插件之导出EXCEl
    vue.js--加载JSON文件的两种方式
    vue项目中axios的封装
    雪碧图布局
    开始学习算法
    Java中有关Null的9件事
    一个抓取知乎页面图片的简单爬虫
    浅析Java中的final关键字
    Java中String、StringBuilder以及StringBuffer
    把一个数组向右循环移动k位要求时间复杂度为O(n)
  • 原文地址:https://www.cnblogs.com/ccf19881030/p/12004858.html
Copyright © 2011-2022 走看看