窗口_监视热键_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 )返回 (局_返回值)
|