参考自:
https://blog.csdn.net/furzoom/article/details/53432768
https://www.cnblogs.com/LyShark/p/11059933.html
感谢前人的整理,这里只归纳了自己感兴趣的部分
窗口消息
// 自身
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 // 当用户已经登入或退出后发送此消息给所有的窗口
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_:扩展组合框控件消息