VC2008中如何为MFC应用程序添加和删除消息响应函数

时间:2022-06-15 15:28:08

最近重温《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应用程序添加和删除消息响应函数

             新浪博主百里无二转载的一篇博文很简洁:

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