Windows消息分为三大类
标准消息:
所有WM_开头的消息 WM_COMMAND除外
命令消息:
来自菜单,工具条按钮或者加速键(快捷键)的消息,以WM_COMMAND呈现
通告消息:
由控件产生的消息 例如按钮的单击,列表框的选择,等 均产生此类消息,为的是向其父窗口通知事件的发生
以下是分别对这三种消息的介绍:
标准消息:
WM_NULL 空消息,此消息将被接收窗口忽略
WM_CREATE 应用程序创建一个窗口
WM_DESTROY 一个窗口被销毁
WM_MOVE 移动一个窗口
WM_SIZE 改变一个窗口的大小
WM_ACTIVATE 一个窗口被激活或失去激活状态
WM_SETFOCus 获得焦点后
WM_PAINT 要求一个窗口重绘自己
WM_CLOSE 当一个窗口或应用程序要关闭时发送一个信号
WM_QUIT 用来结束消息循环,可调用PostQuitMessage()函数来产生此消息
WM_ERASEBKGND 当窗口背景必须被擦除时(例如在窗口改变大小时)
WM_MOUSEMOVE 鼠标移动
WM_LBUTTONDOWN 按下鼠标左键
WM_LBUTTONDBLCLK 双击鼠标左键
WM_RBUTTONDOWN 按下鼠标右键
WM_SIZING 调整窗口大小时发送此消息给窗口,通过此消息应用程序可以监视或修改窗口大小和位置
WM_MOVING 移动窗口时发送此消息给窗口,通过此消息应用程序可以监视或修改窗口大小和位置
WM_MDICREATE 发送此消息给多文档的客户窗口来创建一个MDI子窗口
WM_MDIDESTROY 发送此消息给多文档的客户窗口来关闭一个MDI子窗口
WM_MDIACTIVATE 发送此消息给多文档的客户窗口通知客户窗口激活另一个MDl子窗口
WM_MDINEXTMDI 客户窗口激活下一个或前一个窗口
WM_HOTKEY 当用户按下由RegisterHotKey()注册的热键时产生此消息
Windows消息远远不止这些,可以查询WM_开头的常量
为了防止用户定义的消息id与系统的消息id冲突,微软定义了一个宏,WM_USER,小于WM_USER的id被系统使用,大于WM_USER的id被用户使用
#define WM_USER 0x0400 //(十进制是1024)
所以假如需要自定义消息,id必须大于这个值
以下是消息编号的范围:
0~WM_USER-1 消息保留,仅供系统使用
WM_USER 到 0x7FFF 用于私有窗口类的整数型消息
WM_APP(0x80000) 到 0xFFFF 字符串供应应用程序使用
大于0xFFFF 系统保留
命令消息
以WM_COMMAND表示,来自菜单,或加速键(快捷键)或工具栏按钮的消息
#define WM_COMMAND 0x0111 //(十进制273)
备注:
LOWORD(wParam)是菜单或加速键的ID,菜单的分隔条的ID为0。对于系统菜单的菜单
项和加速键,点击后,Windows会向所属的窗体发送WM_SYSCOMMAND,而不是WM_COMMAND消息。
通告消息:
以WM_COMMAND或WM_NOTIFY形式呈现的。表示,由各种控件产生的消息,
例如,按钮的单击等,为的是向其父窗口(通常是对话框)通知事件的发生。
备注
LOWORD(wParam)是控件ID,HIWORD(wParam)是notification code,比如BN_CLICKED,BN_DBLCLK等
标志用户对控件的操作,双击,单击之类。
件ID,通过IParam知道控件句柄。
WM_COMMAND消息:
当我们按下一个菜单选项,或者一个控件需要通知父窗口一个事件发生(如鼠标单击、双击等),或者快捷键被按下时,Windows将会发送一个WM_COMMAND消息给父窗口。并通过wParam高位置1或O区分菜单、快捷键、或者控件事件Code,通过wParam低位可知道菜单ID或控件ID,通过IParam知道控件句柄。
WM_NOTIFY消息
WM_COMMAND可携带的信息较少,WM_NOTIFY比YWM_COMMAND功能更强大,可以存储一些额外的信息,
Edit,Button,ListBox等发送WM_COMMAND消息,
而ListView,Toolbar,Tree等控件发送WM_NOTIFY消息,因为需要提供的信息更多。因为有些控件功能和事件比较多
Notification Code根据不同控件的命名规律:
Button按钮: BN_XXX
ListBox列表框: LBN_XXX
ComboBox组合框: CBN_XXX
Tab框: TBN_XXx
EN XXX : Edit编辑框:
Static静态文本: STN XXX
扩展阅读:msg结构:
//msg结构: //HWND hwnd; 主窗口句柄 //UINT message; 消息名称 //WPARAM wParam; 附加消息 键盘消息 //LPARAM lParam; 附加消息 鼠标消息(按键消息) //DWORD time; 消息产生的时间 //POINT pt; 附加消息 鼠标消息(位置xy) MSG msg;
相关推荐
windows APi数据类型的命名规律 与常用的windows 数据类型WindowsAPI数据类型的命名规律基本数据来袭包括:BYTE 字节CHAR 字符WORD 单字SHORT 短整型INT 整型指针的类型命名方式一般都在对象名前面加 LP 或者 P /*字
windows F1到F10分别是什么的快捷键 奇淫技巧快捷键F1:帮助功能。在windows系统中,在程序中或者资源管理器中按下F1,一般都会出现帮助界面,还有一个小技巧,假如正在对某个程序进行操作,需要查看系统帮助,可以同时按win加F1。F2:重命名功能。
vmware12虚拟机安装windows server 2003系统教程图解windows APi获取当前进程内存使用情况 内存占有率 PPRoCEss_MEMoRY_CoUnTERs
易语言 可以直接使用精易模块 进程_内存使用 (, )API:BOOL GetProcessMemoryInfo( HANDLE Process, PPROCESS_MEMO
windows 无法安装到这个磁盘 windows需要设备 标准nvm express 控制器的驱动 请单击加载驱动程序 然后加载所需要的驱动程序windows 无法安装到这个磁盘 windows需要设备 标准nvm express 控制器的驱动 请单击加载驱动程序 然后加载所需要的驱动程序
输入法管理器(iMM)函数大全(windows CE 5.0)imm好像要被弃用了 还是研究 TSF输入法 吧 ,虽然没啥鸟用了 但是还是搬运一下下吧EnumRegisterWordProc此函数是与一起使用的应用程序定义的回调函数ImmEnumRegister
windows控件之 富文本编辑器控件富文本编辑控件不仅能输入,编辑,打印和保存文本,还可以设置文本、段落格式等,并可包含嵌入式组件对象模型(COM)对象。富文本编辑控件支持几乎所有用于多行编辑控件的消息和通知代码,因此已使用编辑控件的应
windows资源文件.rc文件Windows应用程序中,图标、菜单、位图、工具条、对话框等是以资源的形式存在的。在win32编程中,为方便项目中的资源统一管理,提供了一个格式统一的资源文件,对各种资源进行管理。资源文件的扩展名是.
c++ 中 char与wchar_t的区别 windows中APi函数后面带A和w的区别C++基本数据类型中表示字符的有两种: char、wchar_t。char叫多字节字符,一个char占1个字节,之所以叫多字节字符是因为它表示一个英文字符时是一个字节,而中文字符时是多个字节。wcha
c++ windows应用程序 入口函数winMain详解入口函数WinMain详解类似于C程序的main函数,Win32应用程序也有一个入口函数WinMain,该函数被系统自动调用函数原型:int WINAPI WinMain( HINSTANCE hI