mygui中文输入及显示

2023-11-03

□ 更改配置文件MyGUI3.0/Media/MyGUI_Media下

☆ 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="8192 8303"/>
      <Code range="12288 12351"/>
            <Code range="19969 40869"/>
            <Code range="65280 65519"/>
            <Code hide="128"/>
            <Code hide="1026 1039"/>
            <Code hide="1104"/>        </Codes>
    </Resource>

☆ simhei.ttf要从系统目录下的Fonts拷贝到当前目录。

☆ core_settings.xml中将默认字体改成

    <MyGUI type="Font">
        <Property key="Default" value="font_Simhei"/>
    </MyGUI>

 

在BaseManger.cpp中

 

void BaseManager::injectKeyPress(MyGUI::KeyCode _key, MyGUI::Char _text)
 {
  if (!mGUI)
   return;

   if(ImmIsIME(GetKeyboardLayout(0)))   
   {        
    if ( _key == MyGUI::KeyCode::Backspace && m_bImming )
     return;
   
    size_t handle = 0;   
    HIMC hIMC;     
    DWORD dwSize;     
    WCHAR lpWideStr[256];    
    memset(lpWideStr, 0, 256);   
    hIMC = ImmGetContext(hWnd);   
    if ( _key == MyGUI::KeyCode::Backspace )
    {
     DWORD dwSize = ImmGetCompositionStringW(hIMC, GCS_COMPREADSTR, NULL, 0); 
     if ( dwSize == 0 )
     {
      mGUI->injectKeyPress(_key, _text);
      return;
     }
    }
    dwSize = ImmGetCompositionStringW(hIMC, GCS_RESULTSTR, NULL, 0);  
    dwSize += sizeof(WCHAR);  
    ImmGetCompositionStringW(hIMC, GCS_RESULTSTR, lpWideStr, dwSize);    
    for (INT i = 0; i < dwSize ;i++)      
    {           
     mGUI->injectKeyPress(_key, lpWideStr[i]);      
    }       
    ImmReleaseContext(hWnd, hIMC);    
   return;  
   }

  if (_key == MyGUI::KeyCode::Escape)
  {
   mExit = true;
   return;
  }
  else if (_key == MyGUI::KeyCode::F12)
  {
   if (mFocusInfo == nullptr)
    mFocusInfo = new diagnostic::InputFocusInfo();

   bool visible = mFocusInfo->getFocusVisible();
   mFocusInfo->setFocusVisible(!visible);
  }

  mGUI->injectKeyPress(_key, _text);
 }

 

过程函数中:

case WM_IME_STARTCOMPOSITION:
   {
    base::BaseManager *baseManager = (base::BaseManager*)GetWindowLongPtr(hWnd, GWL_USERDATA);
    baseManager->m_bImming =true;
    break;
   }
  case WM_IME_ENDCOMPOSITION:
   {
    base::BaseManager *baseManager = (base::BaseManager*)GetWindowLongPtr(hWnd, GWL_USERDATA);
    baseManager->m_bImming =false;
    break;
   }

 

头文件中

public:
  BOOL     m_bImming;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mygui中文输入及显示 的相关文章

  • 如何通过列名检查MySqlDataReader中的NULL?

    我怎样才能检查NULL开放的价值MySqlDataReader 以下不起作用 它总是击中else if rdr GetString timeOut null queryResult Egresstime Logged in else que
  • 如何使用 rel=preload 预加载材质图标?

    我正在尝试使用谷歌灯塔优化我的网页 该报告指出 在导入 Material Design 图标的链接上使用 rel preloads 我尝试使用语法预加载它们 我也尝试过使用字体进行预加载 类型为 woff woff2 和 ttf 它们似乎都
  • SQL - 用 varchar 替换 is null 整数

    我正在尝试用新的列替换列varchar如果 select 语句中存在空值 则为字符串 personid ISNULL personid no person 我不想更新它 只是在查询结果中将值显示为 无人 但我收到一条错误消息 将 varch
  • 检查多个变量java中的替换空值

    我试图找到一种简单的方法来在 Java 中的多个变量中执行多个 null 检查 替换 我有一个包含大约 20 个字符串变量的对象 在构造函数中 我想检查是否有任何变量值为空 如果它们为空 我想用空字符串替换它们 我可以执行一系列 if 语句
  • 在 netBeans 中运行程序时,字体看起来非常奇怪

    我在我的新 MacBook M1 上设置了 netBeans 和 SceneBuilder 除了运行程序时的字体外 一切正常 它看起来像这样 我不知道为什么 按钮应显示 Click me 标签应显示 Hello 我收到的错误消息是 M rz
  • SWT - 与操作系统无关的获取等宽字体的方法

    SWT 有没有一种方法可以简单地获得跨各种操作系统的等宽字体 例如 这适用于 Linux 但不适用于 Windows Font mono new Font parent getDisplay Mono 10 SWT NONE 或者我是否需要
  • 从字符串名称返回 FontStyle

    我想编写一个函数 它将返回 FontStyle 并以字符串作为参数 FontStyle f function Italic FontStyles Italic 我不想编写 Switch case 或 if else 语句来执行相同的操作 对
  • 如何在我的 html 中使用 Flaticon 中的图标?

    我想给我的网站一些图标 现在我看到很多人使用Flaticon这个网站 我所做的就是在 CSS 中添加这样的内容 Font 1 font face font family Flaticon1 src url flaticon1 eot src
  • 如何在c中的某个位置终止字符指针?

    我试图通过设置空终止符来终止 c 中的字符指针 在特定位置 例如 如果我有一个 char 指针 char hi hello 我希望它是 hell 通过设置o为空 我尝试过使用 strcpy 来执行此操作 例如 strcpy hi 4 0 但
  • @font-face 和 font-variant 是个坏主意吗?

    如果我使用 font face字体和font variant small caps对于相同的选择器 字体将回退到 Safari 中的下一个系统默认字体 我该如何解决这个问题 我一开始在创建一个示例来复制您的问题时遇到了一些麻烦 这让我意识到
  • mysqli bind_param 中的 NULL 是什么类型?

    我正在尝试将参数绑定到 INSERT INTO MySQLi 准备好的语句 如果该变量存在 否则插入 null 然后我知道 type variable i corresponding variable has type integer d
  • C# 和 SQL Server:如果字符串值为空,如何在命令参数中插入 DBNull.Value?

    我已经搜索了几个小时 但找不到解决方案 我正在将一些字符串插入 SQL 但是有时 我用来执行此操作的方法可能包含空字符串 即 因此我想在 SQL Server 中插入一个空值 首先我测试我的方法以确保我能够插入DBNull Value通过使
  • Android 支持哪些字体文件类型?

    Android 支持哪些字体文件类型 例如与 Typeface createFromAsset 一起使用 我似乎找不到文档中列出 我可以看到一些教程中提到了 TTF 并且这里有人暗示现在也支持 OTF 但是是否有一个完整的列表显示不同 AP
  • 何时检查未定义以及何时检查 null

    赏金编辑 我正在寻找一个很好的解释 当你应该设置 使用null or undefined以及您需要在哪里进行检查 基本上这两者的常见做法是什么 真的可以在通用的可维护代码中单独对待它们吗 我什么时候可以安全地检查 null 安全地检查 un
  • 如何使用 NextJS 使用自托管字体face?

    使用 NextJS 的字体 我已经阅读了有关如何在 NextJS 中使用自托管字体的不同主题 我得到了什么 wait compiling 当我这样做时 font face font family montserrat src url myp
  • 如何在 Angular 8 中使用本地字体系列?

    我的 assets font 文件夹中有一些自定义字体 假设它是 ITC Charter Com Black 我有四种文件 eot svg tff woff 以及如何在我的项目中使用这些字体 我累了 font family ITC Char
  • 可空类型:在 C# 中检查 null 或零的更好方法

    我正在开展一个项目 我发现我正在很多很多地方检查以下内容 if item Rate 0 item Rate null 更多的是出于好奇 检查这两种情况的最佳方法是什么 我添加了一个辅助方法 public static bool nz obj
  • 将 Null 与 MySQL 触发器中的另一个值进行比较

    所以这是我的问题 我在更新表行时比较新值和旧值 但新值或旧值有时会为空 所以下面的代码不起作用 我可以解决这个问题吗 谢谢 BEFORE UPDATE ON mytable FOR EACH ROW BEGIN IF OLD assigne
  • 堆分配对象是否有一个永不为空的唯一所有者?

    目前 我正在存储一个集合std unique ptrs 到堆分配的多态类型对象 struct Foo virtual Foo default Collection
  • 使用 Android O 的“android:fontFamily”时出现错误“文件名必须以 .xml 结尾”?

    Android O 引入了一项新功能 XML 中的字体 它允许您将字体用作资源 我正在创建font资源文件中的文件夹 由安卓开发者 https developer android com preview features working w

随机推荐

  • 苹果设备解锁工具:iToolab UnlockGo for Mac

    iToolab UnlockGo for Mac是一款具有解锁屏幕密码 移除iCloud激活锁 移除Apple ID 关闭FMI 解锁屏幕使用时间和绕过MDM功能的苹果设备解锁工具 UnlockGo Mac破解版只需要几分钟 就能够快速为您
  • electron 平滑启动,解决启动闪过黑屏与卡顿问题

    const app BrowserWindow require electron 关闭GPU加速 app disableHardwareAcceleration app whenReady then gt createWindow app
  • 并发编程学习(十四):tomcat线程池

    1 Tomcat 功能组件结构 Tomcat 的核心功能有两个 分别是负责接收和反馈外部请求的连接器 Connector 和负责处理请求的容器 Container 其中连接器和容器相辅相成 一起构成了基本的 web 服务 Service 每
  • VJ 4 Traveling

    C Traveling Time limit 2sec Memory limit 256MB Score 300 points Problem Statement AtCoDeer the deer is going on a trip i
  • docker默认配置文件不存在问题解决

    Docker默认的配置文件 etc default docker或者 etc sysconfig docker都不起作用 查看了一下 lib systemd system docker service文件 发现里面没有加载默认配置文件 一些
  • opencv,视频的操作

    http opencv python tutroals readthedocs io en latest py tutorials py gui py video display py video display html http doc
  • MySQL(51)MySQL LIKE:模糊查询

    MySQL LIKE 模糊查询 在 MySQL 中 LIKE 关键字主要用于搜索匹配字段中的指定内容 其语法格式如下 NOT LIKE 字符串 其中 NOT 可选参数 字段中的内容与指定的字符串不匹配时满足条件 字符串 指定用来匹配的字符串
  • 让我们的streamlit网页表格美起来的方法

    大家好 在我们的Streamlit交流群中经常听到小伙伴们吐槽Streamlit自带的表格样式太不友好了 不仅布局不好 如表格内容无法全部显示出来 每列的内容无法居中显示 主题色也不好看 表格行数信息从0开始不符合大家习惯等 针对这个问题
  • 休闲乐系统服务器更改,休闲乐系统服务器更改

    休闲乐系统服务器更改 内容精选 换一换 通过华为云创建的ECS服务器默认使用华为云提供的内网DNS进行解析 内网DNS不影响ECS服务器对公网域名的访问 同时 还可以不经Internet 直接通过内网DNS访问其他云上服务内部地址 如OBS
  • 解决git ssh -T git@github可以成功但无法clone

    解决git ssh T git github可以成功但无法clone git时可以链接成功 ssh T git github 但是clone时出错 提示无权限 如下 git github com Permission denied publ
  • $(" ").value的意思

    范例 var contSourceId contSourceId value 解读 最早出现在prototype js库里与document getElementById 类似 标签ID 返回那个标签的对象 实例
  • 使用cmake创建visual studio工程

    对于从网上拉取的C 代码 手动配置VS环境比较麻烦 使用cmake可以自动配置 这里使用一个简单的cmake配置hello cpp例子演示 前提环境 cmake vs2017 1 在某路径下创建一个文件夹名为test 注意 路径中不能有中文
  • 使用LVS+keepalived实现mysql负载均衡的实践和总结

    前言 经过一段时间的积累 数据库的架构就需要根据项目不断的进行变化 从单台数据库 到了两台数据库的主从 再到读写分离 再到双主 现在进一步需要更多的数据库服务器去支撑更加可怕的访问量 那么经过那么多的学习 也了解到 进一步的架构还有很多 负
  • jupyter中的%%time魔法函数和列表推导式有冲突

    搞了一个下午发现竟然是在jupyter中 time魔法函数和列表推导式不能同时使用 提示错误如下 但比较怪异的是将 time注释后成功运行 再恢复 time功能 竟然就没有异常了
  • 培训第二弹 全国大学生智能汽车竞赛百度竞速组预告

    3月12日本周六晚7点 百度飞桨B站直播间 第十七届全国大学生智能汽车竞赛完全模型组竞速赛第二次线上培训正式开讲 卓老师年前来百度科技园 检查作业 培训内容和学习资料筹备会 不放过每个细节 经过长期精心筹备 在3月12日晚7点飞桨B站直播间
  • 相似文本聚类

    聚类方法 原型聚类 原型是指样本空间中具有代表性的点 此类算法假设聚类结构能通过一组原型刻画 在现实聚类中极为常用 如 k means 高斯混合聚类 高斯混合聚类 层次聚类 层次聚类根据划分策略包括聚合层次聚类和拆分层次聚类 由于前者较后者
  • 2019年8月01日星期四 恒指/美原油/美黄金 走势分析

    财经早餐 2019年8月01日星期四 重点关注的财经数据与事件 02 00 美联储FOMC公布利率决议及政策声明 02 30 美联储主席鲍威尔召开新闻发布会 09 45 中国7月财新制造业PMI终值 15 50 法国7月制造业PMI终值 1
  • 一本读懂BERT(实践篇)

    目录 一 什么是BERT 二 BERT安装 三 预训练模型 四 运行Fine Tuning 五 数据读取源码阅读 一 DataProcessor 二 MrpcProcessor 六 分词源码阅读 一 FullTokenizer 二 Word
  • python基础-第一个python程序

    前言 上一章中 我们介绍了怎么去安装python环境 作为我们入门python的先决条件 今天 我们通过编写第一个python应用程序的方式 正式进入python的大门 首先 关于python 有两种打开方式 一种是shell命令行 一种是
  • mygui中文输入及显示

    更改配置文件MyGUI3 0 Media MyGUI Media下 core font xml添加