【问题标题】:how to sent, keyboard message mirror to edit1 control如何发送,键盘消息镜像到edit1控件
【发布时间】:2011-01-11 22:54:27
【问题描述】:

gMsgHook = SetWindowsHookEx(WH_KEYBOARD_LL, GetMsgHookProc, ghInstDll, 0);

.......

extern "C" HOOK_DLL_API LRESULT CALLBACK GetMsgHookProc(int nCode, WPARAM wParam, LPARAM     lParam)
{
 if (nCode < 0){
   CallNextHookEx(gMsgHook, nCode, wParam, lParam);
 }

 KBDLLHOOKSTRUCT *dl = (KBDLLHOOKSTRUCT*)wParam;

 if (nCode >= HC_ACTION){
  // message mirror to hEdit1
  // doesnt typing work
  SendMessage(hEdit1, wParam, wParam, lParam);
 }

  return CallNextHookEx(gMsgHook, nCode, wParam, lParam);
}

【问题讨论】:

    标签: visual-c++ messages mirror wh-keyboard-ll


    【解决方案1】:

    您的代码 sn-p 中有许多错误。

    首先,传递给挂钩的 KBDLLHOOKSTRUCT 在 lParam 中,而不是 wParam。 wParam 包含窗口消息。

    其次,将 lParam 原样传递给编辑控件。您需要构造适当的 lParam(参见 WM_KEYDOWN、WM_KEYUP 等文档)。

    第三,您将 wParam 作为重新生成的键盘消息的 wParam 传递给 hook proc(即消息) - 它应该是您从 KBDLLHOOKSTRUCT 获得的虚拟键代码。

    第四,如果 nCode

    【讨论】:

      猜你喜欢
      • 2018-10-31
      • 2021-01-02
      • 2011-09-17
      • 1970-01-01
      • 2020-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-02
      相关资源
      最近更新 更多