|
发表于 2011-1-19 21:03:00
|
显示全部楼层
Re:我想请问下在CEGUI中如何实现键盘的连续输入和连续删除
在windows的消息回调函数里增加
case WM_CHAR:
return g_pStateMgr->OnChar(wParam);
case WM_KEYDOWN:
{
//输入法状态时,输入不传递到UI系统中去。
UINT vk = (UINT)ImmGetVirtualKey(g_pRender->_hwnd);
if(vk == wParam)
break;
}
return CEGUI::System::getSingleton().injectKeyDown((CEGUI::utf32)(VirtualKeyToScanCode(wParam, lParam)));
case WM_KEYUP:
return CEGUI::System::getSingleton().injectKeyUp((CEGUI::utf32)(VirtualKeyToScanCode(wParam, lParam)));
///////////////////////////////////////////////////
UINT VirtualKeyToScanCode(WPARAM wParam, LPARAM lParam)
{
if(HIWORD(lParam) & 0x0F00)
{
UINT scancode = MapVirtualKey(wParam, 0);
return scancode | 0x80;
}
else
{
return HIWORD(lParam) & 0x00FF;
}
} |
|