• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            http://m.shnenglu.com/yuanyajie/archive/2007/02/28/19037.aspx

            (轉(zhuǎn))CEGUI 中文輸入

            剛剛搞CEGUI的時(shí)候大體看了一下CEGUI。原以為其不支持中文。
            而且網(wǎng)上很多人都說不支持。。我也就沒有細(xì)細(xì)看了。
            當(dāng)用到Editbox的時(shí)候。又不得不用中文。 這時(shí)候問題就來了。
            先 是用utf8方式轉(zhuǎn)換達(dá)到中文顯示的目的??墒侵形妮斎?yún)s不行。網(wǎng)上有一種說法是將兩個(gè)字節(jié)鏈接起來即可。看了一下編譯器設(shè)置,當(dāng)前使用的是多字節(jié)模式。 就不得不這樣做了。不過估計(jì)我對(duì)C++還不算深。搞了一會(huì),還是失敗了。不過后來在網(wǎng)上有一個(gè)朋友說CEGUI本來就支持中文的。但又看到其它人說的,不 解其言啊。再后來有一個(gè)叫老妖精的網(wǎng)友給了我一份代碼。結(jié)果真的成功了??娠@示可輸入中文。對(duì)于中文的字表由一個(gè)font文件創(chuàng)建。方法如下:
            1:找一個(gè)中文字體文件(.ttf)
            2:創(chuàng)建一個(gè)文本文件,將其存為.font文件.
            3:在.font文件里寫如下代碼(我個(gè)假設(shè)一個(gè)chinese.ttf文件):
            <?xml version="1.0" ?>
            <Font Name="chinese" Filename="chinese.TTF" Type="FreeType" Size="10" NativeHorzRes="1024" NativeVertRes="768" AutoScaled="true"/>
            // 說明:Name就是在程序中要用到的名字, Filename就是文件名,FreeType可以是自定義的,具體到官方網(wǎng)有說明.Size就是字體的大小.程序中是不能調(diào)大小的.因?yàn)樽煮w生成紋理后就是固定的.
            4:在你寫的程序的鍵盤和事件上處理上面正常情況下是這樣子的:CEGUI::System->injectChar((CEGUI::utf32)Key); // Key值就是你程序捉到的按鍵值,我們需要將其改為:

                if (ImmIsIME(GetKeyboardLayout(0)))
                {
                 CEGUI::DbcsSupport::injectChar(Key);
                }
                else
                {
                 CEGUI::System->injectChar((CEGUI::utf32)Key);
                }

                ImmIsIME(GetKeyboardLayout(0))目的是用于檢則現(xiàn)在的輸入法是否打開的。如果是在輸英文狀態(tài)我想你不會(huì)畫蛇添足的。使用這個(gè)需要imm32.lib的支持。MSDN上面也有說明。
            5:最后就是添加一份代碼到你的CEGUI使用項(xiàng)目里,如下:
            namespace CEGUI{
            bool DbcsSupport::injectChar(utf32 code_point )
             {
            #ifndef UNICODE
              static char     s_tempChar[3]  = "";
              static wchar_t  s_tempWchar[2] = L"";
              static bool s_flag = false;
              unsigned char  uch  = (unsigned char)code_point;
              if( uch >= 0xA1 )
              {
               if( !s_flag )
               {
                s_tempChar[0] = (char)uch; //第一個(gè)字節(jié)
                s_flag = true;
                return true;
               }
               else if( uch >= 0xA1 )
               {
                s_tempChar[1] = (char)uch; //第二個(gè)字節(jié)
                s_flag = false;
                MultiByteToWideChar( 0, 0, s_tempChar, 2, s_tempWchar, 1); //轉(zhuǎn)成寬字節(jié)
                s_tempWchar[1] = L'\0';
                utf32 code = (utf32)s_tempWchar[0];
                //Font* fnt = System::getSingleton().getDefaultFont();
                return CEGUI::System::getSingleton().injectChar( code );
               }
               else
               {
                return CEGUI::System::getSingleton().injectChar(code_point);
               }
              }
              else
              {
               s_flag = false;
               return CEGUI::System::getSingleton().injectChar(code_point);
              }
            #else
              return CEGUI::System::getSingleton().injectChar(code_point );
            #endif
             }
            }


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            posts - 15, comments - 2, trackbacks - 0, articles - 29

            Copyright © 美洲豹

            国内精品久久久久久久97牛牛| 国内精品伊人久久久久影院对白| 久久伊人精品青青草原日本| 青青热久久国产久精品| 久久无码国产专区精品| 成人国内精品久久久久一区| 97精品国产97久久久久久免费| 中文字幕无码av激情不卡久久| 国内精品久久久久伊人av| 久久久久亚洲av成人无码电影| 日本强好片久久久久久AAA| 精品多毛少妇人妻AV免费久久| 久久人人爽人人爽人人av东京热| 久久r热这里有精品视频| 久久亚洲AV成人无码软件| 精品久久久久久国产牛牛app| 精品人妻伦九区久久AAA片69| 国产精久久一区二区三区| 久久香蕉超碰97国产精品| 久久这里有精品| 久久精品免费网站网| 久久se精品一区二区| 色欲av伊人久久大香线蕉影院| 久久国产精品二国产精品| 久久免费高清视频| 精品免费久久久久久久| 日韩人妻无码精品久久久不卡| 中文字幕精品久久| 亚洲国产精品狼友中文久久久| 大香网伊人久久综合网2020| 久久狠狠色狠狠色综合| 91久久精品91久久性色| 91精品国产色综合久久| 99久久99久久久精品齐齐| 久久精品国产精品青草app| 狠狠88综合久久久久综合网| 亚洲av伊人久久综合密臀性色| 久久精品国产99国产精品导航| 亚洲欧美精品一区久久中文字幕| 污污内射久久一区二区欧美日韩 | 亚洲欧美国产日韩综合久久|