窗口_监视热键_zc
加入热键消息链后,在处理完消息后仍然会把消息传递给链的下一程序.这时会出现一个按键两个动作的情况出现
按api的定义.在程序处理完按键消息后返回真可以避免系统再把消息传递下去.
功能是通过"监视处理"子过程实现的.下边代码增加了一个局部变量.实现返回功能.兼容以前代码.
|
监视处理 | 整数型 | | |
nCode | 整数型 | | | | Wparam | 整数型 | | | | Lparam | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_状态键 | 整数型 | | | 局_键代码 | 整数型 | | | MSG | MSG | | | 局_返回值 | 整数型 | | |
如果真 (nCode = 0 ) CopyMemory (MSG, Lparam, 20 ) 判断 (MSG.wParam < 35 )   局_键代码 = MSG.hwnd   判断 (MSG.hwnd = 160 或 MSG.hwnd = 161 )    局_状态键 = #Shift键   判断 (MSG.hwnd = 162 或 MSG.hwnd = 163 )    局_状态键 = #Ctrl键   判断 (MSG.hwnd = 164 或 MSG.hwnd = 165 )    局_状态键 = #Alt键   判断 (MSG.hwnd = 91 或 MSG.hwnd = 92 )    局_状态键 = 91        局_返回值 = 程序_执行整数子程序 (集_监视事件, 局_状态键, 局_键代码, 1)   判断 (MSG.wParam > 127 )   局_键代码 = MSG.hwnd   判断 (MSG.hwnd = 160 或 MSG.hwnd = 161 )    局_状态键 = 0      判断 (MSG.hwnd = 162 或 MSG.hwnd = 163 )    局_状态键 = 0   判断 (MSG.hwnd = 164 或 MSG.hwnd = 165 )    局_状态键 = 0   判断 (MSG.hwnd = 91 或 MSG.hwnd = 92 )    局_状态键 = 0        局_返回值 = 程序_执行整数子程序 (集_监视事件, 局_状态键, 局_键代码, 2)      如果真 (局_返回值 = 0 ) CallNextHookEx (集_Hook, nCode, Wparam, Lparam )返回 (局_返回值)
|