在vc6里利用MFC建立OCX工程,该OCX包含很多CFormView,做好后才发现TAB键在OCX里的FormView不起作用,于是添加如下代码:
HHOOK hHook = NULL;
LRESULT CALLBACK GetMessageProc(int nCode, WPARAM wParam, LPARAM lParam)
{
  AFX_MANAGE_STATE(AfxGetStaticModuleState( ));  LPMSG lpMsg = (LPMSG) lParam;
  if( (nCode >= 0) &&
     PM_REMOVE == wParam &&
     (lpMsg->message >= WM_KEYFIRST && lpMsg->message <= WM_KEYLAST) &&
     AfxGetApp()->PreTranslateMessage((LPMSG)lParam) )
     {
         lpMsg->message = WM_NULL;
         lpMsg->lParam = 0L;
         lpMsg->wParam = 0;
     }
  return ::CallNextHookEx(hHook, nCode, wParam, lParam);
}CMyCtrl::CMyCtrl()
{
      InitializeIIDs(&IID_DPreVersionZXD, &IID_DPreVersionZXDEvents);      hHook = ::SetWindowsHookEx(
         WH_GETMESSAGE,
         GetMessageProc,
         AfxGetInstanceHandle(),
         GetCurrentThreadId());
      ASSERT (hHook);
}之后,TAB键起作用了,可是发现令一个问题了,就是在FormView里的编辑框输入中文的时候,出现的是乱码!!!
不知道是什么原因?该如何解决,恳请请大家帮忙!