极语言2-4 窗口非客户区,键盘鼠标,菜单事件——通知消息
窗口非客户区包括标题栏菜单栏最小最大化关闭按钮等区域,也就是可以设计显示控件的区域是客户区
鼠标左键按住标题栏可以拖曳窗口移动位置,但是对于无标题栏的窗口怎么拖动位置呢?
判断(消息) 为 按下左键{发送消息(窗口,区外按左,2,0)}在窗口客户区按下鼠标左键
发送消息是区外按左,也就是在非客户区按下鼠标左键,参数写2是标题栏,模拟鼠标左键点击标题的消息
然后移动鼠标,窗体就会跟随鼠标一起移动了,松开鼠标左键再移动鼠标,窗体也不再跟随鼠标移动
③参数:点击区域,0在屏幕与窗口分界线上,1在窗口客户区,2在标题栏,3菜单或子窗口的关闭按钮,4在大小框中
5在菜单中,6在水平滚动条中,7在垂直滚动条,8在最小化按钮中,9在最大化按钮中,10在调整窗口宽度的左边框
11,在调整窗口宽度的右边框,12在窗口的上水平边框中,13边框的左上角,14边框的右上角,15垂直调整边框中
16边框左下角(对角调整),17边框右下角(对角调整),18不可调大小的边框中,20在关闭按钮中,21在帮助按钮中
判断(消息) 为 键盘按下 获取键值(参数)
为 键盘松开 获取键值(参数)
在键盘按下的动作事件里,把参数提交给获取键值的程序段,也就是键值
程序段 获取键值(键码)
判断(键码)为 37 左方向键
为 38 上方向键 为 65 字母A键
根据不同的键码去执行相应的功能函数(程序段),按键对应的虚拟键代码请查看下面的表
鼠标左键按住标题栏可以拖曳窗口移动位置,但是对于无标题栏的窗口怎么拖动位置呢?
判断(消息) 为 按下左键{发送消息(窗口,区外按左,2,0)}在窗口客户区按下鼠标左键
发送消息是区外按左,也就是在非客户区按下鼠标左键,参数写2是标题栏,模拟鼠标左键点击标题的消息
然后移动鼠标,窗体就会跟随鼠标一起移动了,松开鼠标左键再移动鼠标,窗体也不再跟随鼠标移动
③参数:点击区域,0在屏幕与窗口分界线上,1在窗口客户区,2在标题栏,3菜单或子窗口的关闭按钮,4在大小框中
5在菜单中,6在水平滚动条中,7在垂直滚动条,8在最小化按钮中,9在最大化按钮中,10在调整窗口宽度的左边框
11,在调整窗口宽度的右边框,12在窗口的上水平边框中,13边框的左上角,14边框的右上角,15垂直调整边框中
16边框左下角(对角调整),17边框右下角(对角调整),18不可调大小的边框中,20在关闭按钮中,21在帮助按钮中
| 中文名字 | 常量数值 | 英文名称 | 释义 |
| 区外删除 | $0082 | WM_NCDESTROY | 本消息通知某窗口,非客户区正在销毁。③参数:0;④数据:0 |
| 区外调整 | $0083 | WM_NCCALCSIZE | 当某窗口的客户区的大小和位置须被计算时发送本消息。③参数:0不需要指示工作区的有效部分,非0需要;④数据:参数为真NCCALCSIZE_PARAMS 结构,参数为假 矩形类 |
| 光标离开 | $0084 | WM_NCHITTEST | 当用户在在非客户区移动鼠标、按住或释放鼠标时发送本消息(击中测试);若鼠标没有被捕获,则在得到光标之后发出。③参数:0;④数据:屏幕坐标x/y |
| 区外重绘 | $0085 | WM_NCPAINT | 当窗口框架(非客户区)必须被被重绘时,应用程序发送本消息给该窗口。③参数:区域;④数据:0 |
| 区外激活 | $0086 | WM_NCACTIVATE | 本消息发送给某窗口,在窗口的非客户区被激活时重绘窗口。③参数:0绘制非活动标题栏或图标,非0活动;④数据:0活动窗口,-1不重绘,非活动窗口区域指针 |
| 切换控件 | $0087 | WM_GETDLGCODE | 发送本消息给某个与对话框程序关联的控件,系统控制方位键和TAB键使输入进入该控件。③参数:键码;④数据:消息类 |
| 经过区外 | $00A0 | WM_NCMOUSEMOVE | 当光标在某窗口的非客户区内移动时,发送本消息给该窗口。③参数:点击区域;④数据:坐标x/y; |
| 区外按左 | $00A1 | WM_NCLBUTTONDOWN | 当光标在某窗口的非客户区内的同时按下鼠标左键,会发送本消息。③参数:点击区域;④数据:坐标x/y; |
| 区外放左 | $00A2 | WM_NCLBUTTONUP | 当用户释放鼠标左键的同时光标在某窗口的非客户区内时,会发送本消息。③参数:点击区域;④数据:坐标x/y; |
| 区外双左 | $00A3 | WM_NCLBUTTONDBLCLK | 当用户双击鼠标左键的同时光标在某窗口的非客户区内时,会发送本消息。③参数:点击区域;④数据:坐标x/y; |
| 区外按右 | $00A4 | WM_NCRBUTTONDOWN | 当用户按下鼠标右键的同时光标在某窗口的非客户区内时,会发送本消息。③参数:点击区域;④数据:坐标x/y; |
| 区外放右 | $00A5 | WM_NCRBUTTONUP | 当用户释放鼠标右键的同时光标在某窗口的非客户区内时,会发送本消息。③参数:点击区域;④数据:坐标x/y; |
| 区外双右 | $00A6 | WM_NCRBUTTONDBLCLK | 当用户双击鼠标右键的同时光标在某窗口的非客户区内时,会发送本消息。③参数:点击区域;④数据:坐标x/y; |
| 区外按中 | $00A7 | WM_NCMBUTTONDOWN | 当用户按下鼠标中键的同时光标在某窗口的非客户区内时,会发送本消息。③参数:点击区域;④数据:坐标x/y; |
| 区外放中 | $00A8 | WM_NCMBUTTONUP | 当用户释放鼠标中键的同时光标在某窗口的非客户区内时,会发送本消息。③参数:点击区域;④数据:坐标x/y; |
| 区外双中 | $00A9 | WM_NCMBUTTONDBLCLK | 当用户双击鼠标中键的同时光标在某窗口的非客户区内时,会发送本消息。③参数:点击区域;④数据:坐标x/y; |
| 区外按向 | $00AB | WM_NCXBUTTONDOWN | 当光标位于窗口非工作区中并且用户按下鼠标前进后退按钮时发送。③参数:1后退(X1),2前进(X2);④数据:坐标类; |
| 区外放向 | $00AC | WM_NCXBUTTONUP | 当光标位于窗口非工作区中并且用户释放鼠标前进后退按钮时发送。③参数:1后退(X1),2前进(X2);④数据:坐标类; |
| 区外双向 | $00AD | WM_NCXBUTTONDBLCLK | 当光标位于窗口非工作区中并且用户双击鼠标前进后退按钮时发送。③参数:1后退(X1),2前进(X2);④数据:坐标类; |
为 键盘松开 获取键值(参数)
在键盘按下的动作事件里,把参数提交给获取键值的程序段,也就是键值
程序段 获取键值(键码)
判断(键码)为 37 左方向键
为 38 上方向键 为 65 字母A键
根据不同的键码去执行相应的功能函数(程序段),按键对应的虚拟键代码请查看下面的表
| 中文名字 | 常量数值 | 英文名称 | 释义 |
| 键盘起始 | $0100 | WM_KEYFIRST | 用于WinCE系统,本消息在使用获取消息和查探消息函数时,用于过滤键盘消息 |
| 键盘按下 | $0100 | WM_KEYDOWN | 当一个非系统按键被按下时(键没有被按下),会发送本消息给拥有键盘焦点的窗口。③参数:键码;④数据:扫描码 |
| 键盘松开 | $0101 | WM_KEYUP | 当一个非系统按键被释放弹起时(键没有被按下),会发送本消息给拥有键盘焦点的窗口。③参数:键码;④数据:扫描码 |
| 键入字符 | $0102 | WM_CHAR | 按下某按键,并已发出按下、松开消息,本消息包含被按下的按键的字符码。③参数:字码;④数据:扫描码 |
| 敲击按键 | $0103 | WM_DEADCHAR | \"死字符\"消息,当使用翻译消息函数翻译WM_KEYUP消息时,发送本消息给拥有键盘焦点的窗口。③参数:键码;④数据:扫描码 |
| ALT键按下 | $0104 | WM_SYSKEYDOWN | 当用户按住键的同时又按下其它键时,发送本消息给拥有焦点的窗口。③参数:键码;④数据:扫描码 |
| ALT键松开 | $0105 | WM_SYSKEYUP | 当用户释放一个按键的同时键还按着时,发送本消息给拥有焦点的窗口。③参数:键码;④数据:扫描码 |
| ALT键字符 | $0106 | WM_SYSCHAR | 当WM_SYSKEYDOWN消息被翻译消息函数翻译后,发送本消息给拥有焦点的窗口,注:键被按下。③参数:键码;④数据:扫描码 |
| ALT敲字符 | $0107 | WM_SYSDEADCHAR | \"死字符\"消息,当使用翻译消息函数翻译WM_SYSKEYDOWN消息时,发送本消息给拥有键盘焦点的窗口。③参数:键码;④数据:扫描码 |
| 键盘结束 | $0108 | WM_KEYLAST | 用于WinCE系统,本消息在使用获取消息和查探消息函数时,用于过滤键盘消息 |
| 输入开始 | $010D | WM_IME_STARTCOMPOSITION | 在输入法因为击键生成组合字符串之前立即发送。③参数:0;④数据:0 |
| 输入结束 | $010E | WM_IME_ENDCOMPOSITION | 在输入法结束组合时发送到应用程序。③参数:0;④数据:0 |
| 输入更改 | $010F | WM_IME_COMPOSITION | 当输入法因击键而更改组合状态时,发送到应用程序。③参数:字符;④数据:方式 |
| 输入启动 | $281 | WM_IME_SETCONTEXT | 应用程序的窗口激活时,系统将向应用程序发送消息。③参数:0非活动,非0活动;④数据:1显候选窗口(左移位数是索引几), 15显所有候选,0x40000000显指南窗口,0x80000000显合成窗口 |
| 输入改变 | $282 | WM_IME_NOTIFY | 可使用WM_IME_NOTIFY消息来通知关于IME窗口状态的常规改变。③参数:命令;④数据:相应数据 |
| 输入控制 | $283 | WM_IME_CONTROL | 可使用WM_IME_CONTROL消息来改变字母组合窗口的位置。③参数:命令;④数据:相应数据 |
| 输入超出 | $284 | WM_IME_COMPOSITIONFULL | 用户接口窗口不能增加编码窗口的尺寸时,IME用户接口窗口将发送消息。③参数:0;④数据:0 |
| 输入选择 | $285 | WM_IME_SELECT | 系统发此消息以便选择一个新的IME输入法。③参数:0未选,非0已选;④数据:区域 |
| 输入打字 | $286 | WM_IME_CHAR | 当打开输入法输入文字时发送消息。③参数:0字码;④数据:扫描码 |
| 输入请求 | $288 | WM_IME_REQUEST | 应用程序请求输入法时,触发发送本消息。③参数:命令;④数据:相应数据 |
| 输入按下 | $290 | WM_IME_KEYDOWN | 在输入法录字窗口中按下按键时,触发发送本消息。③参数:0键码;④数据:扫描码 |
| 输入松开 | $291 | WM_IME_KEYUP | 在输入法录字窗口中释放按键时,触发发送本消息。③参数:0键码;④数据:扫描码 |
虚拟键代码表:
| 0x01 | 鼠标的左键 | 0x02 | 鼠标的右键 | 0x03 | Ctrl+Break | 0x04 | 鼠标的中键 | 0x08 | Backspace键 | 0x09 | Tab键 | 0x0C | Clear键 | 0x0D | Enter键 |
| 0x10 | Shift键 | 0x11 | Ctrl键 | 0x12 | Alt键 | 0x13 | Pause键 | 0x14 | Caps | 0x15 | IME-朝鲜日文模式 | 0x16 | IME-打开 | 0x17 | IME-Junja模式 |
| 0x18 | IME-最终模式 | 0x19 | IME-汉字 | 0x1A | IME-关闭 | 0x1B | Ese键 | 0x1C | IME-转换 | 0x1D | IME-不转换 | 0x1E | IME-接受 | 0x1F | IME-模式更改请求 |
| 0x20 | 空格键 | 0x21 | 上页键 | 0x22 | 下页键 | 0x23 | End键 | 0x24 | Home键 | 0x25 | 左键(←) | 0x26 | 上键(↑) | 0x27 | 右键(→) |
| 0x28 | 下键(↓) | 0x29 | Select键 | 0x2A | PRINT键 | 0x2B | EXECUTE键 | 0x2C | (抓屏) | 0x2D | Ins键 | 0x2E | Del键 | 0x2F | Help键 |
| 0x30 | 0键 | 0x31 | 1键 | 0x32 | 2键 | 0x33 | 3键 | 0x34 | 4键 | 0x35 | 5键 | 0x36 | 6键 | 0x37 | 7键 |
| 0x38 | 8键 | 0x39 | 9键 | 0x41 | A键 | 0x42 | B键 | 0x43 | C键 | 0x44 | D键 | 0x45 | E键 | 0x46 | F键 |
| 0x47 | G键 | 0x48 | H键 | 0x49 | I键 | 0x4A | J键 | 0x4B | K键 | 0x4C | L键 | 0x4D | M键 | 0x4E | N键 |
| 0x4F | O键 | 0x50 | P键 | 0x51 | Q键 | 0x52 | R键 | 0x53 | S键 | 0x54 | T键 | 0x55 | U键 | 0x56 | V键 |
| 0x57 | W键 | 0x58 | X键 | 0x59 | Y键 | 0x5A | Z键 | 0x5B | 左win键 | 0x5 | 右win键 | 0x5 | 菜单键 | 0x5 | 休眠键 |
| 0x60 | 数字键0键 | 0x61 | 数字键1键 | 0x62 | 数字键2键 | 0x62 | 数字键3键 | 0x64 | 数字键4键 | 0x65 | 数字键5键 | 0x66 | 数字键6键 | 0x67 | 数字键7键 |
| 0x68 | 数字键8键 | 0x69 | 数字键9键 | 0x6A | 数字*键 | 0x6B | 数字+键 | 0x6C | 分隔符键 | 0x6D | 数字-键 | 0x6E | 数字.键 | 0x6F | 数字/键 |
| 0x70 | F1键 | 0x71 | F2键 | 0x72 | F3键 | 0x73 | F4键 | 0x74 | F5键 | 0x75 | F6键 | 0x76 | F7键 | 0x77 | F8键 |
| 0x78 | F9键 | 0x79 | F10键 | 0x7A | F11键 | 0x7B | F12键 | 0x7C | F13键 | 0x7D | F14键 | 0x7E | F15键 | 0x7F | F16键 |
| 0x80 | F17键 | 0x81 | F18键 | 0x82 | F19键 | 0x83 | F20键 | 0x84 | F21键 | 0x85 | F22键 | 0x86 | F23键 | 0x87 | F24键 |
| 0x90 | 数字开关键 | 0x91 | ScrollLock键 | 0xA0 | 左SHIFT键 | 0xA1 | 右SHIFT键 | 0xA2 | 左Ctrl键 | 0xA3 | 右Ctrl键 | 0xA4 | 左ALT键 | 0xA5 | 右ALT键 |
| 0xA6 | 后退键 | 0xA7 | 前进键 | 0xA8 | 刷新键 | 0xA9 | 停止加载 | 0xAA | 搜索键 | 0xAB | 收藏键 | 0xAC | 主页键 | 0xAD | 静音键 |
| 0xAE | 音量减 | 0xAF | 音量加 | 0xB0 | 下一曲 | 0xB1 | 上一曲 | 0xB2 | 停止播放 | 0xB3 | 播放/暂停 | 0xB4 | 邮件键 | 0xB5 | 选曲键 |
| 0xB6 | 程序1键 | 0xB7 | 程序2键 | 0xBB | 通用+键 | 0xBC | 通用,键 | 0xBD | 通用-键 | 0xBE | 通用.键 | 0xE5 | IME-PROCESS | 0xF6 | Attn 键 |
| 0xF7 | CrSel键 | 0xF8 | ExSel键 | 0xF9 | EraseEOF键 | 0xFA | Play键 | 0xFB | Zoom键 | 0xFC | 预留 | 0xFD | PA1键 | 0xFE | Clear键 |
| 中文名字 | 常量数值 | 英文名称 | 释义 |
| 初始菜单 | $0116 | WM_INITMENU | 当一个菜单将被激活时发送本消息,它发生在用户点击了某菜单项或按下某菜单键。它允许程序在显示前更改菜单。③参数:菜单;④数据:0 |
| 弹出菜单 | $0117 | WM_INITMENUPOPUP | 当一个下拉菜单或子菜单将被激活时发送本消息,它允许程序在它显示前更改菜单,却不更改全部菜单。③参数:菜单;④数据:低位=序号,高位=是否菜单 |
| 选择菜单 | $011F | WM_MENUSELECT | 当用户选择一条菜单项时,发送本消息给菜单的所有者(一般是窗口)。③参数:低位=序号,高位=标志;④数据:菜单 |
| 菜单激活 | $0120 | WM_MENUCHAR | 当菜单已被激活且用户按下了某菜单字符键(括号括着、带下划线,不同于快捷键)。③参数:低位=序号,高位=标志$10弹出菜单,$2000菜单;④数据:菜单; |
| 模框空载 | $0121 | WM_ENTERIDLE | 当一个模态对话框或菜单进入空闲状态时,发送本消息给它的所有者,就是在处理完先前的消息后,消息队列为空时。③参数:0对话框,2菜单;④数据:窗口对象 |
| 菜单右键 | $0122 | WM_MENURBUTTONUP | 本消息允许程序为菜单项提供一个感知上下文的菜单(即快捷菜单)。③参数:序号;④数据:菜单 |
| 菜单点击 | $0123 | WM_MENUDRAG | 当用户拖动菜单项时,发送本消息给拖放菜单的拥有者,可让菜单支持拖拽,可使用OLE拖放传输协议启动拖放操作。③参数:序号;④数据:菜单 |
| 单击菜单 | $0126 | WM_MENUCOMMAND | 当用户在一个菜单上作出选择时,会发送本消息,菜单要具有MNS_NOTIFYBYPOS风格(在MENUINFO结构体中设置)。③参数:序号;④数据:菜单 |
| 进入菜单循环 | $211 | WM_ENTERMENULOOP | 发送本消息通知应用程序的主窗口已进入菜单循环模式。③参数:是否显示菜单;④数据:0 |
| 退出菜单循环 | $212 | WM_EXITMENULOOP | 发送本消息通知应用程序的主窗口已退出菜单循环模式。③参数:是否快捷菜单;④数据:0 |
| 菜单切换 | $213 | WM_NEXTMENU | 当使用左箭头光标键或右箭头光标键在菜单条与系统菜单之间切换时触发本消息,③参数:键码;④数据:MDINEXTMENU |
| 捕获光标 | $0020 | WM_SETCURSOR | 若鼠标光标在某窗口内移动且鼠标没被捕获时,就会发送本消息给某个窗口。③参数:窗口;④数据:命中消息 |
| 拖曳后窗 | $0021 | WM_MOUSEACTIVATE | 当鼠标光标在某个未激活窗口内,而用户正按着鼠标的某个键时,会发送本消息给当前窗口。③参数:父窗;④数据:命中消息;返回值:1激活窗口不丢弃鼠标,2激活丢弃鼠标,3不激活不丢弃,4不激活丢弃鼠标 |
| 点击右键 | $007B | WM_CONTEXTMENU | 当用户在某窗口中点击右键就发送本消息给该窗口,设置右键菜单。③参数:窗口;④数据:屏幕坐标x/y |
| 单击左键 | $0111 | WM_COMMAND | 用户选择一条菜单命令项或某控件发送一条通知消息给其父窗,或某快捷键被翻译时,本消息被发送。③参数:低位=编号,高位=事件;④数据:控件;菜单无高位事件,快捷键高位1,两者数据都是0 |
| 单击窗口 | $0112 | WM_SYSCOMMAND | 当用户选择一条系统菜单命令、用户最大化或最小化或还原或关闭时。③参数:命令;④数据:点菜单时鼠标位置 |
| 鼠标起始 | $0200 | WM_MOUSEFIRST | 鼠标移动时发生(与WM_MOUSEMOVE等值),常用于判断鼠标消息的范围 |
| 鼠标移动 | $0200 | WM_MOUSEMOVE | 当鼠标在窗口客户区移动时。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
| 按下左键 | $0201 | WM_LBUTTONDOWN | 当鼠标左键在窗口客户区按下。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
| 释放左键 | $0202 | WM_LBUTTONUP | 当鼠标左键在窗口客户区放开。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
| 双击左键 | $0203 | WM_LBUTTONDBLCLK | 当鼠标左键在窗口客户区双击。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
| 按下右键 | $0204 | WM_RBUTTONDOWN | 当鼠标右键在窗口客户区按下。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
| 释放右键 | $0205 | WM_RBUTTONUP | 当鼠标右键在窗口客户区放开。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
| 双击右键 | $0206 | WM_RBUTTONDBLCLK | 当鼠标右键在窗口客户区双击。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
| 按下中键 | $0207 | WM_MBUTTONDOWN | 当鼠标中键在窗口客户区按下。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
| 释放中键 | $0208 | WM_MBUTTONUP | 当鼠标中键在窗口客户区放开。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
| 双击中键 | $0209 | WM_MBUTTONDBLCLK | 当鼠标中键在窗口客户区双击。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
| 滚轮转动 | $020A | WM_MOUSEWHEEL | 当滚动鼠标滚轮时。③参数:高位120向后,-120向前;低位1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
| 鼠标结束 | $020A | WM_MOUSELAST | WM_MBUTTONDBLCLK的别名,通常用于判断鼠标消息的范围,对应的还有WM_MOUSEFIRST(鼠标起始) |
| 失去鼠标 | $215 | WM_CAPTURECHANGED | 当它失去捕获的鼠标时,发送本消息给窗口。③参数:0;④数据:窗口 |
| 移动消息 | $216 | WM_MOVING | 当用户在移动窗口时发送本消息,通过本消息应用程序以监视窗口大小和位置,也可修改它们。③参数:0;④数据:矩形类 |
| 拖放文件 | $233 | WM_DROPFILES | 鼠标拖放时,放下事件产生时发送本消息,比如:文件拖放功能。③参数:文件;④数据:0 |
| 鼠标经外 | $2A0 | WM_NCMOUSEHOVER | 当光标悬停在窗口的非工作区上的达到指定时间发送本消息。③参数:命中值;④数据:坐标类; |
| 鼠标经过 | $2A1 | WM_MOUSEHOVER | 当光标悬停在窗口的工作区上的达到指定时间发送本消息。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
| 鼠标离外 | $2A2 | WM_NCMOUSELEAVE | 当光标离开之前调用 TrackMouseEvent 中指定的窗口的非工作区时发送本消息。③参数:0;④数据:0; |
| 鼠标离开 | $2A3 | WM_MOUSELEAVE | 鼠标离开控件时,触发发送本消息。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
| 配置更新 | $001A | WM_WININICHANGE | 读写"win.ini"时会发送本消息给所有顶层窗口,通知其它进程该文件已被更改。③参数:0;④数据:名称 |
| 设备模式 | $001B | WM_DEVMODECHANGE | 改变设备模式设置("win.ini")时,处理本消息的应用程序可重新初始化它们的设备模式设置③参数:0;④数据:名称 |
| 系统关机 | $0011 | WM_QUERYENDSESSION | 关机或注销时系统会按优先级给各进程发送,告诉应用程序要关机或注销了。③参数:0;④数据:0正在关闭事件;1文件要换或资源耗尽;4强制关闭程序;8用户正在注销 |
| 系统变色 | $0015 | WM_SYSCOLORCHANGE | 当系统颜色改变时,发送本消息给所有顶级窗口。③参数:0;④数据:0 |
| 开始关机 | $0016 | WM_ENDSESSION | 关机或注销时系统会发出消息给应用程序,通知程序会话结束。③参数:0会话结束,非0正在结束;④数据:0正在关闭事件;1文件要换或资源耗尽;4强制关闭程序;8用户正在注销 |
| 时间错误 | $0017 | WM_SYSTEMERROR | 系统时间错误。③参数:0;④数据:0 |
| 字库更新 | $001D | WM_FONTCHANGE | 当系统的字体资源库变化时发送本消息给所有顶级窗口。③参数:0;④数据:0 |
| 时间改变 | $001E | WM_TIMECHANGE | 当系统的时间变化时发送本消息给所有顶级窗口。③参数:0;④数据:0 |
| 系统暂停 | $0048 | WM_POWER | 当系统将要进入暂停状态时发送本消息(适用于16位的windows)③参数:1即将挂起,2挂起恢复,3含两种;④数据:0 |
| 传递数据 | $004A | WM_COPYDATA | 当一个应用程序传递数据给另一个应用程序时发送本消息。③参数:窗口;④数据: COPYDATASTRUCT 结构 |
| 取消日志 | $004B | WM_CANCELJOURNAL | 当用户取消程序日志激活状态时,发送本消息给那个应用程序。该消息使用空窗口句柄发送。③参数:0;④数据:0 |
| 用户出入 | $0054 | WM_USERCHANGED | 当用户已登入或退出后发送本消息给所有窗口;当用户登入或退出时以及系统更新用户设置时,立即发送本消息。③参数:0;④数据:0; 自 Windows Vista 起,不支持此消息。 |
| 调分辨率 | $007E | WM_DISPLAYCHANGE | 当显示器的分辨率改变后,发送本消息给所有窗口。③参数:位深;④数据:分辨率x/y |
| 电源消息 | $218 | WM_POWERBROADCAST | 通知它有关电源管理事件。③参数:4正在扶起,7正在恢复,10状态更改,18自动恢复,32781设置更改;④数据:无/POWERBROADCAST_SETTING/PBT_POWERSETTINGCHANGE |
| 硬件修改 | $219 | WM_DEVICECHANGE | 当设备的硬件配置改变时,发送本消息给应用程序或设备驱动程序。③参数:事件;④数据:结构 |
| 主题更改 | $31A | WM_THEMECHANGED | 在主题更改事件后广播到每个窗口。③参数:0;④数据:0 |
| 消息保留 | $0000 | PM_NOREMOVE | 查探消息处理后,消息不从队列里除掉。 |
| 消息清除 | $0001 | PM_REMOVE | 查探消息处理后,消息从队列里除掉。 |
| 消息空闲 | $0002 | PM_NOYIELD | 此标志使系统不释放等待调用程序空闲的线程。 |

浙公网安备 33010602011771号