Windows 消息大全

参考自:
https://blog.csdn.net/furzoom/article/details/53432768
https://www.cnblogs.com/LyShark/p/11059933.html
感谢前人的整理,这里只归纳了自己感兴趣的部分

WM_ :窗口消息

窗口消息

// 自身
WM_ERASEBKGND 				// 当窗口背景必须被擦除时(例在窗口改变大小时)
WM_GETFONT 					// 得到当前控件绘制文本的字体
WM_SETFONT					// 设置当前控件绘制文本的字体
WM_GETTEXT 					// 得到与窗口对应的文本
WM_SETTEXT 					// 设置与窗口对应的文本
WM_GETTEXTLENGTH 			// 确定与窗口关联的文本的长度(以字符为单位)。
WM_SETICON 					// 将一个新的大图标或小图标与一个窗口关联

窗口通知

// 自身
WM_DRAWITEM					// 按钮、组合框、列表框、菜单的外观改变	
WM_MEASUREITEM				// 按钮、组合框、列表框、列表控件、菜单项被创建	
WM_DELETEITEM				// 列表框或组合框被销毁
WM_ACTIVATEAPP 				// 发此消息给应用程序哪个窗口是激活的,哪个是非激活的
WM_CHILDACTIVATE			// 点击此窗口的标题栏,或当窗口被激活,移动,改变大小
WM_COMPACTING				// 表示当前系统内存不足
WM_CREATE 					// 应用程序创建一个窗口
WM_CLOSE 					// 当一个窗口或应用程序 "要" 关闭时发送一个信号,此时可以选择关闭或不关闭
WM_DESTROY 					// 一个窗口正在被销毁时发出,此时窗口已经在视觉上被删除
WM_QUIT						// 用来结束程序运行
/*
	一个主窗口被关闭,并不意味着应用程序结束了,它将在没有窗口的条件下继续运行,
	然而,当一个用户关闭了主窗口,也就意味着他要结束应用程序,所以如果你希望应
	用程序结束,在收到WM_DESTROY消息的时候,你必须发出一个 WM_QUIT 消息
*/
WM_ENABLE					// 窗口 enable 状态改变(启用/禁用 窗口)
WM_ENTERSIZEMOVE 			// 窗口进入,移动,或调整大小时发送
WM_EXITSIZEMOVE 			// 窗口退出,移动,或调整大小时发送
WM_GETICON 					// 返回与某个窗口有关连的图标句柄
WM_GETMINMAXINFO			// 窗口改变大小或位置时发送
WM_INPUTLANGCHANGE 			// 输入法发生改变(切换)
WM_INPUTLANGCHANGEREQUEST 	// 选择了新的输入语言(输入法未必改变)
WM_MOVE 					// 窗口被移动后发送消息(非实时)
WM_MOVING 					// 窗口正在移动时发送消息(实时)
WM_NCCREATE 				// 当某个窗口第一次被创建时,此消息在 WM_CREATE 消息发送前发送
WM_NULL 					// 常用来判断窗口是否未响应,也可以用 IsHungAppWindow 
WM_SHOWWINDOW 				// 隐藏或显示窗口
WM_SIZE 					// 窗口大小改变后(非实时)
WM_SIZING 					// 窗口大小改变中(实时)
WM_STYLECHANGED 			// SetWindowLong 改变了窗口样式
WM_STYLECHANGING 			// SetWindowLong 正在改变窗口样式
WM_WINDOWPOSCHANGED 		// 窗口的大小和位置已经被改变时
WM_WINDOWPOSCHANGING 		// 窗口的大小和位置将要被改变时

// 不常用
WM_CANCELMODE				// 取消某些窗口模式
WM_NCACTIVATE 				// 改变非客户区显示活跃或不活跃的状态
WM_NCCALCSIZE 				// 当必须计算窗口的客户区域的大小和位置时发送
WM_NCDESTROY 				// 此消息通知某个窗口,非客户区正在销毁
WM_QUERYDRAGICON			// 拖动一个没有 class icon 的最小化窗口或发送
WM_QUERYOPEN 				// 当用户窗口恢复以前的大小位置时,把此消息发送给某个图标

键盘通知

// 自身
WM_ACTIVATE 				// 一个窗口被激活或失去激活状态
WM_HOTKEY 					// 按下热键
WM_KEYDOWN 					// 按下按键
WM_KEYUP					// 释放按键
WM_KILLFOCUS 				// 窗口失去键盘输入焦点
WM_SETFOCUS 				// 窗口得到键盘输入焦点
WM_SYSKEYDOWN 				// 按下 f10 或带有 alt 的组合键
WM_SYSKEYUP					// 释放 f10 或带有 alt 的组合键
WM_GETHOTKEY 				// 判断热键与某个窗口是否有关联
WM_SETHOTKEY 				// 让一个窗口与一个热键相关连

// 不常用
WM_APPCOMMAND 				// 输入应用程序命令
WM_CHAR 					// 按下某键,在发出 WM_KEYDOWN,WM_KEYUP 后发送
WM_DEADCHAR 				// 用 translatemessage 翻译 WM_KEYUP 消息时发送此消息给拥有焦点的窗口
WM_SYSDEADCHAR 				// 当 WM_SYSKEYDOWN 消息被 TRANSLATEMESSAGE 函数翻译后发送此消息给拥有焦点的窗口

鼠标通知

// 自身
WM_CAPTURECHANGED 			// 窗口失去鼠标捕获(比如开始拖动窗口时)
WM_LBUTTONDBLCLK 			// 双击鼠标左键
WM_LBUTTONDOWN				// 按下鼠标左键
WM_LBUTTONUP 				// 释放鼠标左键
WM_MOUSEACTIVATE 			// 光标在某个非激活的窗口中而用户正按着鼠标的某个键(即将激活窗口)
WM_MOUSEMOVE 				// 鼠标移动
WM_NCHITTEST 				// 当鼠标移动或者有鼠标键按下时候发出
WM_NCLBUTTONDBLCLK 			// 非客户区域双击鼠标左键
WM_NCLBUTTONDOWN 			// 非客户区域按下鼠标左键
WM_NCLBUTTONUP 				// 非客户区域按下鼠标左键
WM_NCMOUSEMOVE  			// 鼠标在非客户区域移动
WM_NCRBUTTONDBLCLK 			// 非客户区域双击右键
WM_NCRBUTTONDOWN 			// 非客户区域按下右键
WM_NCRBUTTONUP 				// 非客户区域释放右键
WM_RBUTTONDBLCLK 			// 客户区域双击右键
WM_RBUTTONDOWN 				// 客户区域按下右键
WM_RBUTTONUP 				// 客户区域释放右键


// 不常用
WM_MOUSEHOVER 				// 默认情况下窗口不相应此消息(需要调用 _TrackMouseEvent  激活),鼠标在窗口停留超过一定时间后发送此消息
WM_NCMOUSEHOVER 			// 鼠标悬停在非客户区域一段时间
WM_MOUSELEAVE				// 默认情况下窗口不相应此消息(需要调用 _TrackMouseEvent  激活),鼠标离开窗口后发送此消息
WM_NCMOUSELEAVE 			//鼠标离开非客户区域
WM_MOUSEHWHEEL				// 滑动或倾斜鼠标滚轮
WM_MOUSEWHEEL				// 滑动鼠标滚轮
WM_MBUTTONDBLCLK 			// 双击鼠标中键
WM_MBUTTONDOWN 				// 按下鼠标中键
WM_MBUTTONUP 				// 释放鼠标中键
WM_NCMBUTTONDBLCLK 			// 非客户区域双击鼠标中键
WM_NCMBUTTONDOWN 			// 非客户区域按下鼠标中键
WM_NCMBUTTONUP 				// 非客户区域释放鼠标中建

绘图

// 自身
WM_NCPAINT 					// 当窗体框架(非客户区)要被重画时
WM_PAINT 					// 窗口客户区要被重画时
WM_SETREDRAW				// 设置窗口是否可以重绘

// 全局
WM_DISPLAYCHANGE 			// 显示分辨率发生变化

// 不常用
WM_PRINT 					// 请求在指定的设备上重绘自身
WM_PRINTCLIENT 				// 在指定设备上绘制客户区域
WM_SYNCPAINT 				// 用于同步绘制

时钟通知

WM_TIMER 					// 当计时器到期时,张贴到安装线程的消息队列。

系统配置

// 全局
WM_SETTINGCHANGE 			// SystemParametersInfo 函数更改系统设置后
WM_WININICHANGE 			// 修改WIN.INI文件后
WM_QUERYENDSESSION			// 关机或注销(先执行)
WM_ENDSESSION				// 关机或注销(后执行)
WM_SYSCOLORCHANGE			// 系统颜色改变
WM_DEVMODECHANGE			// 改变设备模式设置
WM_FONTCHANGE				// 系统的字体资源库变化
WM_TIMECHANGE				// 系统的时间变化
WM_SPOOLERSTATUS			// 打印管理列队增加或减少一条作业
WM_POWER					// 系统将要进入暂停状态(适用于16位的windows)
WM_THEMECHANGED 			// windows 主题变化
WM_USERCHANGED				// 当用户已经登入或退出后发送此消息给所有的窗口





IMC_ , IME_ ,IMN,IMR_:输入法消息


MIM_,MM_MIM,MOM_:MIDI(乐器输入接口)输入设备消息


DRV_:驱动消息


SPFILENOTIFY_:驱动安装过程中消息


PBT_:电源消息


ABM_,ABN_:桌面工具栏工具栏消息


CPL_:控制面板消息


FM_,FMEVENT_:文件资源管理器消息


NIM_:系统托盘消息


各种控件消息

DM_:对话框消息
CDM_,CDN_:打开/保存 通用对话框消息
UDM_,UDN_:微调按钮消息
PGM_ :Pager分页控件消息
SBM_:滚动条控件消息
BM_,BN_,TB_,TBN_:按钮消息
CB_,CBN_:组合框控件消息
LB_,LBN_:列表框控件消息
TTM_:工具提示(鼠标悬停出现介绍)控件消息
EM_:Rich Edit(文本编辑)控件消息
LVM_,LVN_:ListView 控件消息
TVM_:树控件消息
HDM_:标头控件消息
STM_,STN_:图像,图标消息
IPM_,IPN_:IP地址控件消息
PBM_:进度条控件消息
TBM_:滑块控件消息
TCM_,TCN_:标签控件消息
EM_,EN_:编辑框控件消息
HKM_:热键控件消息
MCM_,MCN_,DTM_,DTN_:月历控件消息
ACM_,ACN_:动画播放控件消息
SB_,SBN_:状态栏消息
RB_,RBN_:Rebar控件消息
PSM_,PSN_:属性页控件消息
CBEM_,CBEN_:扩展组合框控件消息

你可能感兴趣的:(窗口操作)