mfc消息映射和消息处理
mfc 消息机制

mfc消息机制
MFC(Microsoft Foundation Class)是微软开发的一种面向对象的C++框架,用于Windows操作系统的应用程序开发。
MFC消息机制是MFC框架的核心之一,其基本原理是在窗口、控件等对象之间传递消息,以便处理事件和交互。
具体而言,MFC消息机制包括以下几个方面:1.消息循环:MFC使用一个消息循环来接受和处理Windows操作系统发送的Windows消息,处理完消息后将处理结果反馈给Windows操作系统。
2.消息映射:MFC中的控件和窗口都有一个关联的消息映射表,用于将Windows消息映射到应用程序代码中的相应处理函数上。
当某个控件或窗口收到消息后,根据消息类型在相应的消息映射表中查找对应的消息处理函数,并调用相应的处理函数处理消息。
3.消息类型:MFC处理的Windows消息类型包括键盘和鼠标消息、定时器消息、系统负载消息、窗口大小变化消息等等,具体的消息类型可以在MFC框架的文档中查找。
4.消息处理函数:MFC中的消息处理函数是C++成员函数,定义为afx_msg 修饰的函数,Windows消息处理函数命名时需要遵循一定的命名规则,例如OnPaint()函数用于处理绘图事件。
需要注意的是,MFC消息机制是针对Windows操作系统设计的,其他操作系统可能具有不同的消息机制。
此外,MFC框架已经不是微软推荐的最先进的应用程序开发框架,已经逐渐被其他框架和技术所取代,例如.NET Framework,WPF,UWP等。
MFC编程基础教程

MFC编程基础教程MFC(Microsoft Foundation Classes)是一套基于C++的应用程序框架,用于开发可视化的Windows应用程序。
MFC提供了丰富的工具和类库,使程序开发人员能够更加轻松地创建Windows应用程序。
一、MFC框架的介绍MFC是一种C++编程框架,用于开发Windows应用程序。
MFC提供了一系列的类和方法,用于处理窗口、消息处理、资源管理等常见的任务。
MFC框架的核心是一个称为CWinApp的类,它是应用程序的入口点。
二、MFC的基本概念1.窗口:MFC使用窗口来显示应用程序的用户界面。
窗口可以是主窗口、对话框、工具栏、菜单等。
2.消息处理函数:MFC使用消息机制来处理用户输入和系统事件。
消息处理函数是在收到特定的消息时执行的代码块。
3.控件:控件是用于用户交互的窗口元素,例如按钮、文本框、列表框等。
4.对象模型:MFC使用面向对象的概念来管理窗口和控件。
每个窗口或控件都是一个C++对象,有自己的属性和方法。
三、MFC应用程序的创建1.创建一个MFC应用程序的步骤:a. 新建项目:在Visual Studio中创建一个MFC应用程序项目。
c.编写代码:编写消息处理函数和其他代码,实现应用程序的功能。
d.编译和运行:编译项目并运行应用程序。
四、MFC消息处理1.应用程序的消息循环:MFC应用程序的消息循环负责接收和处理用户输入和系统事件。
2.消息映射表:消息映射表是一个用于将消息与消息处理函数关联的数据结构。
3.常见的消息类型:MFC提供了大量的消息类型,包括鼠标和键盘消息、窗口消息、菜单消息等。
五、MFC控件的使用1.控件的创建和操作:使用MFC提供的类和方法来创建和操作控件。
2.控件的属性设置:通过设置控件的属性来改变它的外观和行为。
3.控件事件的处理:通过处理控件的事件来响应用户的操作。
六、MFC对话框的使用2.对话框控件的操作:对话框中的控件可以像其他控件一样进行操作。
mfc 知识点总结

mfc 知识点总结MFC库的基本组成包括以下几个部分:1. CObject类:是所有MFC类的基类,提供了对象的基本功能,包括内存管理、类型信息、对象的打印和序列化等。
2. CWnd类:是窗口类的基类,封装了Windows窗口的创建、显示、消息处理等功能。
3. CFrameWnd类:是框架窗口类,派生自CWnd类,封装了应用程序的主窗口,提供了菜单、工具栏、状态栏等UI组件。
4. CDocument类和CView类:分别是文档类和视图类,用于管理应用程序中的文档和视图。
文档类负责文档的打开、保存、关闭等操作,视图类负责文档内容的显示和交互。
5. CWinApp类:是应用程序类的基类,封装了应用程序的初始化、消息循环、资源管理等功能。
MFC库提供了丰富的类和函数,用于处理Windows应用程序的各个方面,下面将对MFC的一些重要知识点进行总结。
1. 消息处理在MFC应用程序中,窗口的消息处理是至关重要的。
MFC提供了消息映射机制来进行消息处理。
通过DECLARE_MESSAGE_MAP宏和BEGIN_MESSAGE_MAP/END_MESSAGE_MAP 宏,在类中声明消息处理函数并将消息与处理函数进行映射。
例如:```cpp// 声明消息处理函数afx_msg void OnMouseMove(UINT nFlags, CPoint point);// 映射消息到处理函数BEGIN_MESSAGE_MAP(CMyWnd, CWnd)ON_WM_MOUSEMOVE()END_MESSAGE_MAP()```2. 对话框对话框是Windows应用程序中常用的界面元素,用于与用户进行交互。
MFC提供了CDialog类和CDialogEx类来封装对话框。
开发者可以使用资源编辑器创建对话框模板,然后通过类向导生成对话框类。
对话框类中可以处理控件的事件,并通过DoModal函数或Create函数来显示对话框。
mfc 中nm_rclick的用法

mfc 中nm_rclick的用法在MFC中,nm_rclick是指当用户右键点击某个控件时触发的消息。
nm_rclick 是通过向父窗口发送NM_RCLICK消息来实现的。
下面将详细介绍nm_rclick 的用法。
首先,需要了解一些基本概念。
在MFC中,控件是通过CWnd类的派生类来表示的,处理控件的消息一般是在父窗口中进行的。
通过向父窗口发送消息的方式来实现对控件的操作。
当用户在控件上右键点击时,控件会发送一条NM_RCLICK消息给父窗口。
父窗口可以通过处理该消息来执行相应的操作。
nm_rclick消息的处理方式有两种:消息映射和自定义处理。
一、消息映射的方式:在父窗口的消息映射表中添加对NM_RCLICK消息的映射。
示例如下:ON_NOTIFY(NM_RCLICK, IDC_LIST, OnRclickList)上述代码表示当ID为IDC_LIST的列表控件接收到NM_RCLICK消息时,调用OnRclickList函数进行处理。
在OnRclickList函数中可以对右击事件进行相应的处理,例如显示一个右键菜单或执行其他操作。
void CMyDialog::OnRclickList(NMHDR* pNMHDR, LRESULT* pResult) {处理右键点击事件TODO: 添加代码*pResult = 0;}二、自定义消息处理的方式:在父窗口中重载PreTranslateMessage函数,在该函数中判断是否接收到了NM_RCLICK消息,并进行相应的处理。
示例如下:BOOL CMyDialog::PreTranslateMessage(MSG* pMsg){if (pMsg->message == WM_RBUTTONDOWN){HWND hWnd = ::GetForegroundWindow();CWnd* pWnd = CWnd::FromHandle(hWnd);if (pWnd != NULL && pWnd->GetDlgCtrlID() == IDC_LIST){处理右键点击事件TODO: 添加代码return TRUE; 拦截消息}}return CDialog::PreTranslateMessage(pMsg);}上述代码中,首先判断当前接收消息的窗口是否为打开的对话框,并且判断窗口ID是否为IDC_LIST,表示列表控件。
MFC程序中消息以及函数的处理顺序简介

MFC程序中消息以及函数的处理顺序简介MFC应用程序中处理消息的顺序1.AfxWndProc()该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数3.WindowProc()该函数负责发送消息到OnWndMsg()函数,如果未被处理,则调用DefWindowProc()函数4.OnWndMsg()该函数的功能首先按字节对消息进行排序,对于WM_COMMAND消息,调用OnCommand()消息响应函数,对于WM_NOTIFY消息调用OnNotify()消息响应函数。
任何被遗漏的消息将是一个窗口消息。
OnWndMsg()函数搜索类的消息映像,以找到一个能处理任何窗口消息的处理函数。
如果OnWndMsg()函数不能找到这样的处理函数的话,则把消息返回到WindowProc()函数,由它将消息发送给DefWindowProc()函数5.OnCommand()该函数查看这是不是一个控件通知(lParam参数不为NULL,如果lParam参数为空的话,说明该消息不是控件通知),如果它是,OnCommand()函数会试图将消息映射到制造通知的控件;如果他不是一个控件通知(或者如果控件拒绝映射的消息)OnCommand()就会调用OnCmdMsg()函数6.OnCmdMsg()根据接收消息的类,OnCmdMsg()函数将在一个称为命令传递(Command Routing)的过程中潜在的传递命令消息和控件通知。
例如:如果拥有该窗口的类是一个框架类,则命令和通知消息也被传递到视图和文档类,并为该类寻找一个消息处理函数MFC应用程序创建窗口的过程1.PreCreateWindow()该函数是一个重载函数,在窗口被创建前,可以在该重载函数中改变创建参数(可以设置窗口风格等等)2.PreSubclassWindow() 这也是一个重载函数,允许首先子分类一个窗口3.OnGetMinMaxInfo()该函数为消息响应函数,响应的是WM_GETMINMAXINFO消息,允许设置窗口的最大或者最小尺寸4.OnNcCreate()该函数也是一个消息响应函数,响应WM_NCCREATE消息,发送消息以告诉窗口的客户区即将被创建5.OnNcCalcSize()该函数也是消息响应函数,响应WM_NCCALCSIZE消息,作用是允许改变窗口客户区大小6.OnCreate()该函数也是一个消息响应函数,响应WM_CREATE消息,发送消息告诉一个窗口已经被创建7.OnSize()该函数也是一个消息响应函数,响应WM_SIZE消息,发送该消息以告诉该窗口大小已经发生变化8.OnMove()消息响应函数,响应WM_MOVE消息,发送此消息说明窗口在移动9.OnChildNotify()该函数为重载函数,作为部分消息映射被调用,告诉父窗口即将被告知一个窗口刚刚被创建MFC应用程序关闭窗口的顺序(非模态窗口)1.OnClose()消息响应函数,响应窗口的WM_CLOSE消息,当关闭按钮被单击的时候发送此消息2.OnDestroy()消息响应函数,响应窗口的WM_DESTROY消息,当一个窗口将被销毁时,发送此消息3.OnNcDestroy()消息响应函数,响应窗口的WM_NCDESTROY消息,当一个窗口被销毁后发送此消息4.PostNcDestroy() 重载函数,作为处理OnNcDestroy()函数的最后动作,被CWnd调用MFC应用程序中打开模式对话框的函数调用顺序1.DoModal()重载函数,重载DoModal()成员函数2.PreSubclassWindow()重载函数,允许首先子分类一个窗口3.OnCreate()消息响应函数,响应WM_CREATE消息,发送此消息以告诉一个窗口已经被创建4.OnSize()消息响应函数,响应WM_SIZE消息,发送此消息以告诉窗口大小发生变化5.OnMove()消息响应函数,响应WM_MOVE消息,发送此消息,以告诉窗口正在移动6.OnSetFont()消息响应函数,响应WM_SETFONT消息,发送此消息,以允许改变对话框中控件的字体7.OnInitDialog()消息响应函数,响应WM_INITDIALOG消息,发送此消息以允许初始化对话框中的控件,或者是创建新控件8.OnShowWindow()消息响应函数,响应WM_SHOWWINDOW消息,该函数被ShowWindow()函数调用9.OnCtlColor()消息响应函数,响应WM_CTLCOLOR消息,被父窗口发送已改变对话框或对话框上面控件的颜色10. OnChildNotify()重载函数,作为WM_CTLCOLOR消息的结果发送MFC应用程序中关闭模式对话框的顺序1.OnClose()消息响应函数,响应WM_CLOSE消息,当"关闭"按钮被单击的时候,该函数被调用2.OnKillFocus()消息响应函数,响应WM_KILLFOCUS消息,当一个窗口即将失去键盘输入焦点以前被发送3.OnDestroy()消息响应函数,响应WM_DESTROY消息,当一个窗口即将被销毁时,被发送4.OnNcDestroy()消息响应函数,响应WM_NCDESTROY消息,当一个窗口被销毁以后被发送5.PostNcDestroy() 重载函数,作为处理OnNcDestroy()函数的最后动作被CWnd调用打开无模式对话框的顺序1.PreSubclassWindow()重载函数,允许用户首先子分类一个窗口2.OnCreate()消息响应函数,响应WM_CREATE消息,发送此消息以告诉一个窗口已经被创建3.OnSize()消息响应函数,响应WM_SIZE消息,发送此消息以告诉窗口大小发生变化4.OnMove()消息响应函数,响应WM_MOVE消息,发送此消息以告诉窗口正在移动5.OnSetFont()消息响应函数,响应WM_SETFONT消息,发送此消息以允许改变对话框中控件的字体。
MFC消息结构和消息处理

MFC消息结构和消息处理1.消息的结构为了从消息队列获取消息信息,需要使用MSG结构。
例如,::GetMessage函数(从消息队列得到消息并从队列中移走)和::PeekMessage函数(从消息队列得到消息但是可以不移走)都使用了该结构来保存获得的消息信息。
MSG结构的定义如下:typedef struct tagMSG { // msgHWND hwnd;UINT message;WPARAM wParam;LPARAM lParam;DWORD time;POINT pt;} MSG;该结构包括了六个成员,用来描述消息的有关属性:接收消息的窗口句柄、消息标识(ID)、第一个消息参数、第二个消息参数、消息产生的时间、消息产生时鼠标的位置。
2.应用程序通过窗口过程来处理消息每个“窗口类”都要登记一个如下形式的窗口过程LRESULT CALLBACK MainWndProc (HWND hwnd,// 窗口句柄UINT msg,// 消息标识WPARAM wParam,//消息参数1LPARAM lParam//消息参数2)应用程序通过窗口过程来处理消息:非队列消息由Windows直接送给目的窗口的窗口过程,队列消息由::DispatchMessage等派发给目的窗口的窗口过程。
窗口过程被调用时,接受四个参数:a window handle(窗口句柄);a message identifier(消息标识);two 32-bit values called message parameters(两个32位的消息参数);需要的话,窗口过程用::GetMessageTime获取消息产生的时间,用::GetMessagePos获取消息产生时鼠标光标所在的位置。
在窗口过程里,用switch/case分支处理语句来识别和处理消息。
3.应用程序通过消息循环来获得对消息的的处理每个GDI应用程序在主窗口创建之后,都会进入消息循环,接受用户输入、解释和处理消息。
mfc 信息机制

mfc 信息机制MFC信息机制MFC(Microsoft Foundation Class)是微软公司推出的一套用于Windows操作系统的C++类库,它为开发者提供了丰富的工具和组件,用于快速构建Windows应用程序。
在MFC中,信息机制是其重要特性之一,它提供了一种方便的方式来管理和传递应用程序中的消息。
一、消息机制的基本概念在MFC中,消息是指应用程序中发生的各种事件,比如鼠标点击、键盘输入、窗口关闭等。
消息机制是指MFC框架中的一套机制,用于处理和分发这些消息。
消息的处理过程包括两个关键组件:消息映射和消息处理函数。
1. 消息映射消息映射是指将消息和消息处理函数进行关联的过程。
通过在类的消息映射表中添加相应的消息和处理函数的映射关系,可以告诉MFC框架在收到某个消息时应该调用哪个函数进行处理。
消息映射表一般定义在类的声明中,使用宏来声明消息映射表的内容。
2. 消息处理函数消息处理函数是指用于处理特定消息的函数。
当MFC框架收到某个消息时,会根据消息映射表中的映射关系调用相应的消息处理函数。
消息处理函数可以是类的成员函数,也可以是全局函数,具体取决于消息映射表中的声明方式。
二、消息机制的应用场景消息机制在MFC中广泛应用于用户界面的交互和事件响应。
通过消息机制,开发者可以方便地处理用户的操作和系统的事件,实现各种功能和交互效果。
1. UI事件响应在MFC应用程序中,用户通过与界面上的控件进行交互来触发各种事件,比如按钮点击、菜单选择等。
通过消息机制,我们可以将这些事件与相应的处理函数进行关联,当用户触发某个事件时,可以执行相应的处理逻辑。
2. 窗口消息处理MFC中的窗口是指用户界面上的各种窗口元素,比如对话框、窗口、视图等。
窗口消息是指与窗口相关的各种事件,比如窗口创建、大小改变、关闭等。
通过消息机制,我们可以对窗口消息进行处理,实现窗口的初始化、布局、关闭等功能。
3. 自定义消息除了系统定义的消息类型,MFC还支持自定义消息。
MFC自定义消息步骤

MFC自定义消息步骤MFC(Microsoft Foundation Classes)是Microsoft公司为Windows平台开发的C++类库,它封装了许多Windows API函数,简化了Windows应用程序的开发过程。
在MFC中,可以使用自定义消息来进行应用程序内部的消息传递。
自定义消息的步骤如下:1. 定义消息常量:首先,在需要使用自定义消息的地方(通常是对话框或视图类中),定义一个用于表示自定义消息的整型常量。
可以使用WM_USER作为基准值,如const UINT WM_MY_MESSAGE = WM_USER + 12. 注册消息:在应用程序启动时,通常在InitInstance函数中,使用CWinApp类的RegisterWindowMessage函数来注册自定义消息,该函数用于获取一个唯一的消息值,如:UINT myMessage = RegisterWindowMessage(LPCTSTR pString).3. 处理消息:在需要处理自定义消息的类中,重写消息处理函数(通常是OnWndMsg函数),根据自定义消息的值,对相应的消息进行处理。
如:BEGIN_MESSAGE_MAP(CMyDialog, CDialog)ON_WM_COPYDATA//...ON_REGISTERED_MESSAGE(myMessage, OnMyMessageHandler)END_MESSAGE_MAPLRESULT CMyDialog::OnMyMessageHandler(WPARAM wParam, LPARAM lParam)//处理自定义消息//...return 0;4. 发送消息:要发送自定义消息,可以使用CWnd类的PostMessage或SendMessage函数。
其中,PostMessage函数用于异步发送消息,而SendMessage函数用于同步发送消息。
(1) 异步发送消息(PostMessage):CWnd* pDestWnd = GetDlgItem(IDC_MY_CONTROL);pDestWnd->PostMessage(myMessage, wParam, lParam);(2) 同步发送消息(SendMessage):CWnd* pDestWnd = GetParent(;pDestWnd->SendMessage(myMessage, wParam, lParam);5.消息映射宏:在使用消息映射宏处理自定义消息时,需要使用ON_REGISTERED_MESSAGE宏,该宏会自动在消息映射表中添加对应的消息处理函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
映射宏把一个Windows 消息和其消息处理函数联 映射宏把一个 Windows消息和其消息处理函数联 结起来。 结起来。
►在类的实现源文件中用
BEGIN_MESSAGE_MAP(derived class) 和
class,base
END_MESSAGE_MAP()宏来定义消息映射 END_MESSAGE_MAP()宏来定义消息映射。 宏来定义消息映射。
回顾
利用应用程序向导(AppWizard)工具 利用应用程序向导(AppWizard)工具 可以建立哪3 可以建立哪3种类型的应用程序? 应用程序向导生成了哪些文件? 如何使用classwizard向导? 如何使用classwizard向导?
如何添加一个成员变量? 如何添加一个成员函数? 如何添加一个新类? 如何添加消息响应函数?
2. 命令消息
3. 控件通知消息
消息映射及消息响应
► MFC 采 用 消 息 映 射 ( Message
பைடு நூலகம்
Map ) 机 制 取 代 结构来处理消息。 C/C++语言中的 C/C++语言中的switch-case结构来处理消息。 语言中的switch-case结构来处理消息
► MFC消息映射机制包括一组消息映射宏。一条消息 MFC消息映射机制包括一组消息映射宏。 消息映射机制包括一组消息映射宏
// 用户自定义的消息映射宏
. . . . . . //}}AFX_MSG_MAP END_MESSAGE_MAP()
注意: 注意 : 特殊注解“//{{AFX_MSG_MAP”是ClassWizard类 向导用于维护消息映射宏的标记,用户不要删除注解轻易 修改注解内的代码。
4. 用户自定义消息
SendMessage(WM_MYMESSAGE,0L,0L);
如:窗口消息
► 窗口消息是指对Windows应用程序的 窗口消息是指对Windows应用程序的
窗口进行某些操作时发送的消息。 Visual C++ 6.0中,包含了如下6种窗 6.0中,包含了如下6 口消息。 ► WM_CREATE:窗口被创建。 WM_CREATE:窗口被创建。 ► WM_DESTROY:窗口被销毁。 WM_DESTROY:窗口被销毁。 ► WM_CLOSE:窗口被关闭。 WM_CLOSE:窗口被关闭。 ► WM_MOVE:窗口发生移动。 WM_MOVE:窗口发生移动。 ► WM_SIZE:窗口发生改变。 WM_SIZE:窗口发生改变。 ► WM_PAINT:窗口发生重绘。 WM_PAINT:窗口发生重绘。
3.在类的消息映射表中加入映射项。 3.在类的消息映射表中加入映射项。
ON_MESSAGE(WM_MYMESSAGE, OnMyMessage)
4.在类上实现消息处理函数。 4.在类上实现消息处理函数。 5.使用SendMessage函数或PostMessage发送 5.使用SendMessage函数或PostMessage发送 消息
Windows的三类消息 Windows的三类消息
1. 标准消息
如:键盘消息
键盘消息是应用程序中使用最频繁的消息之 一,当用户使用键盘对应用程序进行操作, 就发送键盘消息。一般来说,Visual C++中 就发送键盘消息。一般来说,Visual C++中 的键盘消息主要有如下3 的键盘消息主要有如下3种。 WM_CHAR:该消息的处理函数OnChar()。 WM_CHAR:该消息的处理函数OnChar()。 WM_KEYDOWN:用户按下一个非系统键。 WM_KEYDOWN:用户按下一个非系统键。 WM_KEYUP:在非系统键被释放时产生。 WM_KEYUP:在非系统键被释放时产生。
1.首先在为类实现文件中定义消息。 1.首先在为类实现文件中定义消息。
#define WM_MYMESSAGE WM_USER+100
2.在类中声明消息处理函数。 2.在类中声明消息处理函数。
afx_msg LRESULT OnMyMessage(WPARAM wParam,LPARAM lParam)
如:焦点消息
焦点消息是指当窗口中的某个对象得到 焦点和失去焦点的时候,对应窗口或对 象触发的操作。一般来说,只有下面两 种焦点消息。 WM_SETFOCUS:窗口得到焦点。 WM_SETFOCUS:窗口得到焦点。 WM_KILLFOCUS:窗口失去焦点。 WM_KILLFOCUS:窗口失去焦点。 当一个窗口从非活动状态变为具有输入 焦点的活动状态的时候,它就会收到 WM_SETFOCUS消息,而当一个窗口失 WM_SETFOCUS消息,而当一个窗口失 去输入焦点变为非活动状态的时候它就 会收到WM_KILLFOCUS消息。 会收到WM_KILLFOCUS消息。
如:鼠标消息
与键盘消息类似,鼠标消息也是Windows应用程序中 与键盘消息类似,鼠标消息也是Windows应用程序中 使用最为频繁的消息之一。一般来说,Windows应用 使用最为频繁的消息之一。一般来说,Windows应用 程序中的鼠标消息主要有如下几种。 WM_MOUSEMOVE:用户将鼠标移进窗口或在窗口中 WM_MOUSEMOVE:用户将鼠标移进窗口或在窗口中 移动。 WM_LBUTTONDOWN:用户按下左键。 WM_LBUTTONDOWN:用户按下左键。 WM_LBUTTONUP:用户释放左键。 WM_LBUTTONUP:用户释放左键。 WM_LBUTTONDBCLICK:用户双击左键。 WM_LBUTTONDBCLICK:用户双击左键。 WM_RBUTTONDOWN:用户按下右键。 WM_RBUTTONDOWN:用户按下右键。 WM_RBUTTONUP:用户释放右键。 WM_RBUTTONUP:用户释放右键。 WM_RBUTTONDBCLICK:用户双击右键。 WM_RBUTTONDBCLICK:用户双击右键。
如:定时器消息
► Windows的定时器是一种周期性消息产生装置, Windows的定时器是一种周期性消息产生装置,
当用户为一个窗口设置了定时器资源之后,系统 就会按规定的时间间隔向窗口发送定时器消息, 在这个消息中就可以处理一些需要定期处理的事 情。定时器消息只有一种:WM_TIMER,其响应 情。定时器消息只有一种:WM_TIMER,其响应 函数是OnTimer。 函数是OnTimer。 ► 对于定时器的操作,通常都会和函数SetTimer() 对于定时器的操作,通常都会和函数SetTimer() 配合使用。在响应OnTimer函数之前,应先添加 配合使用。在响应OnTimer函数之前,应先添加 一个定时器对其进行触发,如果没有建立定时器, 系统是不会自己去触发OnTimer函数的, 系统是不会自己去触发OnTimer函数的, SetTimer()函数的作用就是设置定时器 SetTimer()函数的作用就是设置定时器 。
►在
类 定 义 的 结 尾 用 DECLARE_MESSAGE_MAP()宏来声明使用消 DECLARE_MESSAGE_MAP() 宏来声明使用消 息映射。 息映射。
BEGIN_MESSAGE_MAP(theclass, baseclass) //{{AFX_MSG_MAP(theclass) MFC预定义的消息映射宏 ON_ . . . . . . // MFC预定义的消息映射宏 ON_MESSAGE(message , memberFxn)