锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
浠嬬粛:
鍒╃敤Win32 鏉ュ鐞哅yGui 3.0.1鐨勪腑鏂囪緭鍏ャ?br>
瀹炵幇:
閰嶇疆榪樻槸鍙傝冪綉涓婄殑閰嶇疆錛屼富瑕佸啀鍔犱腑鏂囧瓧浣?
濡備笅:
鈻?nbsp;鏇存敼閰嶇疆鏂囦歡MyGUI3.0\Media\MyGUI_Media涓?br>
鈽?nbsp;core_font.xml娣誨姞
<Resource type="ResourceTrueTypeFont" name="font_Simhei">
<Property key="Source" value="simhei.ttf"/>
<Property key="Size" value="19"/>
<Property key="Resolution" value="50"/>
<Property key="Antialias" value="false"/>
<Property key="SpaceWidth" value="4"/>
<Property key="TabWidth" value="8"/>
<Property key="CursorWidth" value="2"/>
<Property key="Distance" value="6"/>
<Property key="OffsetHeight" value="0"/>
<Codes>
<Code range="33 126"/>
<Code range="19969 40869"/>
<Code hide="128"/>
<Code hide="1026 1039"/>
<Code hide="1104"/>
</Codes>
</Resource>
鈽?nbsp;simhei.ttf瑕佷粠緋葷粺鐩綍涓嬬殑Fonts鎷瘋礉鍒板綋鍓嶇洰褰曘?br>
鈽?nbsp;core_settings.xml涓皢榛樿瀛椾綋鏀規垚
<MyGUI type="Font">
<Property key="Default" value="font_Simhei"/>
</MyGUI>
榪愯Demo瑙e喅鏂規: solution_directx銆?br>
緇橞aseManager娣誨姞Win32娑堟伅鍝嶅簲鍑芥暟void ProcIO(UINT messgae, WPARAM wParam, LPARAM lParam ).
case WM_CHAR:
case WM_KEYDOWN:
case WM_KEYUP:
{
base::BaseManager *baseManager = (base::BaseManager*)GetWindowLongPtr(hWnd, GWL_USERDATA);
if ( baseManager )
baseManager->ProcIO( uMsg , wParam , lParam );
break;
}
ProcIO涓昏鏄
WM_CHAR 瀛楃鍝嶅簲
WM_KEYDOWN/WM_KEYUP 鎸夐敭鍝嶅簲
鍦ㄥ鐞嗗瓧絎﹀搷搴旂殑鏃跺欓渶瑕佸尯鍒嗚緭鍏ユ硶鐘舵佸拰闈炶緭鍏ユ硶鐘舵佺殑瀛楃鍝嶅簲銆?br>
case WM_CHAR:
{
if ( ImmIsIME( GetKeyboardLayout(0) ))
ProcChar( wParam , lParam );
else
{
MyGUI::InputManager::getInstance().injectKeyPress(MyGUI::KeyCode::Enum(scan_code), code_point);
};
}
break;
ProcChar鍑芥暟涓昏澶勭悊涓枃銆傚洜涓烘眽瀛椾負8涓瓧鑺備細鍝嶅簲WM_CHAR2嬈°傞渶瑕佽繘琛岀粍鍚堜竴嬈°?br>WM_KEYDOWN錛氫富瑕佸鐞嗕竴浜沇idget瀛楃杈撳叆銆傚悓鏃惰繕鍙互鍋氬叏灞閿洏淇℃伅鐩戞帶錛堝揩鎹烽敭錛?
鍒ゆ柇涓涓猈idget鏄惁鍙互榪涜瀛楃杈撳叆:
\MyGUIEngine\include\MyGUI_InputManager.cpp
bool InputManager::isKeyInputCapture()
{
if( !mWidgetKeyFocus ) return false;
std::string strName = mWidgetKeyFocus->getTypeName();
if ( strName == "ComboBox" ||
strName == "Edit" ||
strName == "Message" ||
strName == "List")
{
return true;
}
return false;
}
鐢變簬閲囩敤Win32閿洏娑堟伅錛屽簲璇ュ睆钄借嚜甯IS鐨勩?br>Input\OIS\InputManager.cpp
void InputManager::captureInput()
{
if (mMouse) mMouse->capture();
//mKeyboard->capture();
}
鍦―emo涓洃鎺ф寜閿秷鎭? DemoKeeper鍔熻兘鏄疷IManager )銆?br>
void DemoKeeper::injectKeyPress(MyGUI::KeyCode _key, MyGUI::Char _text)
{
if (_key == MyGUI::KeyCode::Grave)
{
mConsole->setVisible(!mConsole->isVisible());
return;
}
else if (_key == MyGUI::KeyCode::F2 )
{
MyGUI::Message::createMessageBox("Message", "Info", "Press F2 ", MyGUI::MessageBoxStyle::Ok | MyGUI::MessageBoxStyle::IconInfo);
return;
}
else if (_key == MyGUI::KeyCode::F3 )
{
MyGUI::Message::createMessageBox("Message", "Info", "Press F3 ", MyGUI::MessageBoxStyle::Ok | MyGUI::MessageBoxStyle::IconInfo);
return;
}
base::BaseManager::injectKeyPress(_key, _text);
}
鏈鍚庨檮涓婃簮鐮佽В鍐蟲柟妗?
/Files/expter/MyGuiDemo.rar
鍥劇墖錛?img border=0 alt="" src="http://www.shnenglu.com/images/cppblog_com/expter/mygui.jpg" width=417 height=317>
]]>