在最后相应windows消息传递的时候,需要处理一下:
- STDMETHODIMP CMyIEToolbar::TranslateAcceleratorIO(LPMSG lpMsg)
- {
- //编辑框输入中文解决方法(抄来的,没研究)
- int nVirtkey = (int)lpMsg->wParam;
- if(WM_KEYUP == lpMsg->message && VK_RETURN == nVirtkey)
- {
- lpMsg->wParam = 0;
- //发送enter键的消息给父窗口,消息是WM_GETQUOTE,将lpMsg的wParam设为0
- ::PostMessage(m_ReflectWnd.GetToolBar().GetEditBox().GetParent(),WM_GETQUOTE,0,0);
- return S_OK;
- }
- else if((WM_KEYUP == lpMsg->message || WM_KEYDOWN == lpMsg->message) &
- VK_BACK == nVirtkey ||(VK_END <= nVirtkey && VK_DOWN >= nVirtkey ) || VK_DELETE == nVirtkey)
- {
- TranslateMessage(lpMsg);
- DispatchMessage(lpMsg);
- return S_OK;
- }
- else
- {
- return S_FALSE;
- }
- }
本文介绍了一种在Windows应用程序中处理特定键盘事件的方法。通过覆盖`TranslateAcceleratorIO`函数,可以实现对编辑框内中文输入的支持,并且能够正确处理回车、删除等按键操作,确保应用程序响应用户输入。
5

被折叠的 条评论
为什么被折叠?



