MFC 消息类型——实践(转载)
摘要:1、命令消息(WM_COMMAND所有派生自CCmdTarget的类都有资格接受WM_COMMAND。 2、Window消息(WM_xxx) 所有派生自CWnd的类都有资格接受WM_xxx。 3、控件消息(WM_NOTIFY) 控件向其父窗口通知消息。 消息处理 1、WM_xxx消息处理 窗口类(自身)处理→基类处理→CWnd∷DefWindowProc()处理; 其所对应的宏一般为在消息WM_前面加上ON_。 2、命令消息处理 命令消息来自命令用户接口对象(菜单、加速键或工具栏按钮)发出的WM_COMMAND消息; ㈠、WM_COMMAND消息 其所包含的类型和对应的宏如下: ①、ON_CO
阅读全文
MFC消息类型——理论(转载)
摘要:Windows系统是一个消息驱动的操作系统,消息是应用程序与操作系统交互的手段。消息的产生来源于系统事件和用户事件,Windows用消息来调入和关闭应用程序。例如在关机操作中,Windows给所有正在运行的应用程序发出一个关机的消息,通知它们退出内存,此时,应用程序用响应消息的方法来回应。MFC通过封装的方式提供对大部分消息处理的接口。本章将围绕消息分类、发送、接收、处理以及重定向等内容展开讨论。1.1 消息分类从不同的角度,有如下几种分类方式。 从消息的发送途径上看,可以分为队列消息和非队列消息。 从消息的来源来看,可以分为系统消息和自定义消息。 从对消息的处理上看,可以分为窗口消息、...
阅读全文
SendMessage和PostMessage
摘要:SendMessage 和 PostMessage 的区别 1、首先是返回值意义的区别,我们先看一下MSDN里的声明:LRESULTSendMessage(HWNDhWnd,UINTMsg,WPARAMwParam,LPARAMlParam);BOOLPostMessage(HWNDhWnd,UINTMsg,WPARAMwParam,LPARAMlParam); 其中4个参数的意义是一样的,返回值类型不同(其实从数据上看他们一样是一个32位的数,只是意义不一样),LRESULT表示的是消息被处理后的返回值,BOOL表示的是消息是不是Post成功。2、PostMessage是异步的,SendM.
阅读全文
Windows消息循环
摘要:1 #include <Windows.h> 2 #include <tchar.h> 3 #include "resource.h" 4 5 #define MAX_LOADSTRING 100 6 TCHAR szTitle[MAX_LOADSTRING] = _T("标题栏"); // 标题栏文本 7 TCHAR szWindowClass[MAX_LOADSTRING] = _T("MyClass"); // 主窗口类名 8 9 10 ATOM ToRegisterClass(HINSTANCE hIn
阅读全文
PreTranslateMessage
摘要:MFC中CWintThread的PumpMessage函数的定义: 1 BOOL CWinThread::PumpMessage() 2 { 3 _AFX_THREAD_STATE *pState = AfxGetThreadState(); 4 5 ::GetMessage(&(pState->m_msgCur), NULL, NULL, NULL)) 6 7 if (!AfxPreTranslateMessage(&(pState->m_msgCur)))//当PreTranslateMessage返回FALSE时才继续传递消息 8 { 9 ...
阅读全文
windows消息大全
摘要:消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg, 它在Windows中是这样声明的: typedef struct { HWNDhwnd;/ /窗口句柄 UINTmessage;/ /消息常量标识符 WPARAMwParam;// 32位消息的特定附加信息 LPARAMlPar...
阅读全文
Windows消息中的虚拟键列表
摘要:Windows消息中的虚拟键列表Windows消息中的虚拟键VK_LBUTTON 鼠标左键 0x01VK_RBUTTON 鼠标右键 0x02VK_CANCEL Ctrl + Break 0x03VK_MBUTTON 鼠标中键 0x04VK_BACK Backspace 键 0x08VK_TAB Tab 键 0x09VK_RETURN 回车键 0x0DVK_SHIFT Shift 键 0x10VK_CONTROL Ctrl 键 0x11VK_MENU Alt 键 0x12VK_PAUSE Pause 键 0x13VK_CAPITAL ...
阅读全文