MFC 应用程序到 Unicode/MBCS 的分段转换

2023-11-25

我有一个大型 MFC 应用程序,我正在扩展它以允许多语言输入。目前,我需要允许用户在单个对话框的编辑框中输入 Unicode 数据。

有没有办法在不为整个应用程序打开 UNICODE 或 MBCS 的情况下执行此操作?我目前只需要转换应用程序的一小部分。是否可以分段执行此操作?如果可以,如何执行?


澄清:我可以使用 ::GetWindowTextW() 从窗口中获取 Unicode 信息。我试图弄清楚如何允许用户在窗口中输入 Unicode 文本。现在,用户输入的字符windows-1252 代码页之外的内容显示为“?”。有没有办法来解决这个问题?


允许CEdit要显示 Unicode 字符,您应该使用以下命令创建它CreateWindowW功能。我刚刚在 ANSI MFC 程序中测试了它。

// allows Unicode characters
CreateWindowW( L"EDIT", L"", WS_CHILD|WS_VISIBLE, 10, 10, 50, 20, GetSafeHwnd(), 0, 0, 0 );

// shows Unicode characters as ?
CreateWindow( "EDIT", "", WS_CHILD|WS_VISIBLE, 10, 10, 50, 20, GetSafeHwnd(), 0, 0, 0 );

您可以手动创建所有编辑框OnInitDialog对话框的功能。然后将它们子类化为具有 Unicode 支持的自定义 CMyEdit 类。

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

MFC 应用程序到 Unicode/MBCS 的分段转换 的相关文章

  • Accept() 是线程安全的吗?

    我目前正在用 C 语言为我正在做的课程编写一个简单的网络服务器 我们的一项要求是实现一个线程池来使用 pthread 处理连接 我知道我将如何粗略地执行此操作 在主线程中调用accept并将文件描述符传递给freee线程 但是我的朋友建议了
  • 如何将十六进制字符串转换为十六进制数字[重复]

    这个问题在这里已经有答案了 可能的重复 如何将十六进制字符串转换为有符号整数 https stackoverflow com questions 3705429 how do i convert hex string into signed
  • 将图像文件从网址复制到本地文件夹?

    我有该图像的网址 例如 http testsite com web abc jpg http testsite com web abc jpg 我想将该 URL 复制到 c images 中的本地文件夹中 而且当我将该文件复制到文件夹中时
  • 使用API​​隐藏程序标题栏

    它可以使用 c 和 windows api 删除窗口控制台标题栏 如果是的话如何 请 这个简单的应用程序隐藏并显示其所在控制台的标题栏 它会立即将控制台标题更改为 guid 以查找窗口句柄 然后 它使用 ToggleTitleBar 使用找
  • 使用 OpenGL 着色器进行数学计算 (C++)

    我有一个矩阵 例如 100x100 尺寸 我需要对每个元素进行计算 matrix i j tt 8 5例如 我有一个巨大的矩阵 我想使用 OpenGL 着色器来实现该算法 我想使用着色器 例如 uniform float val unifo
  • 为什么这个函数指针赋值在直接赋值时有效,但在使用条件运算符时无效?

    本示例未使用 include 在 MacOS10 14 Eclipse IDE 上编译 使用 g 选项 O0 g3 Wall c fmessage length 0 假设这个变量声明 int fun int 这无法通过 std touppe
  • 找到的程序集的清单定义与程序集引用不匹配

    我试图在 C Windows 窗体应用程序 Visual Studio 2005 中运行一些单元测试 但出现以下错误 System IO FileLoadException 无法加载文件或程序集 实用程序 版本 1 2 0 200 文化 中
  • 如何在编译C代码时禁用警告?

    我正在使用 32 位 Fedora 14 系统 我正在使用编译我的源代码gcc 有谁知道如何在编译c代码时禁用警告 EDIT 是的 我知道 最好的办法是修复这些警告以避免任何未定义 未知的行为 但目前在这里 我第一次编写了巨大的代码 并且在
  • Qt 计算和比较密码哈希

    目前正在 Qt 中为测验程序构建面向 Web 的身份验证服务 据我了解 在数据库中存储用户密码时 必须对其进行隐藏 以防落入坏人之手 流行的方法似乎是添加的过程Salt https en wikipedia org wiki Salt cr
  • Paradox 表 - Oledb 异常:外部表不是预期的格式

    我正在使用 Oledb 从 Paradox 表中读取一些数据 我遇到的问题是 当我将代码复制到控制台应用程序时 代码可以工作 但在 WinForms 中却不行 两者都以 x86 进行调试 我实际上只是复制代码 在 WinForms 应用程序
  • 存储过程上的 OdbcCommand - 输出参数上出现“未提供参数”错误

    我正在尝试执行存储过程 通过 ODBC 驱动程序针对 SQL Server 2005 但收到以下错误 过程或函数 GetNodeID 需要参数 ID 但未提供该参数 ID 是我的过程的 OUTPUT 参数 在存储过程中指定了一个输入 mac
  • 默认值 C# 类 [重复]

    这个问题在这里已经有答案了 我在控制器中有一个函数 并且我收到表单的信息 我有这个代码 public Actionresult functionOne string a string b string c foo 我尝试将其转换为类似的类
  • 指向字节数组的指针

    由于 Misra C 的要求 我的一位同事想要使用指针声明 但我遇到了一些问题 Misra 安全关键指南 不会让我们纯粹的程序员使用指针 但会让我们对数组字节进行操作 他打算获取一个指向字节数组的指针 因此我们不会在堆栈上传递实际的数组 T
  • 手动将 ClientBase 集合类型从 Array[] 更改为 List<>

    我将自己的 WCF 代理与 Client Base 一起使用 我想做一些类似于 svc util 中的 ct 属性的操作 并告诉代理返回 List 集合类型 我不能使用 List 因为实体由 nhibernate 管理 所以我必须使用 IL
  • 操纵 setter 以避免 null

    通常我们有 public string code get set 如果最终有人将代码设置为 null 我需要避免空引用异常 我尝试这个想法 有什么帮助吗 public string code get set if code null cod
  • 更改 IdentityServer4 实体框架表名称

    我正在尝试更改由 IdentityServer4 的 PersistedGrantDb 和 ConfigurationDb 创建的默认表名称 并让实体框架生成正确的 SQL 例如 而不是使用实体IdentityServer4 EntityF
  • 正确使用“extern”关键字

    有一些来源 书籍 在线材料 解释了extern如下 extern int i declaration has extern int i 1 definition specified by the absence of extern 并且有支
  • 相当于 C# 中 Java 的“ByteBuffer.putType()”

    我正在尝试通过从 Java 移植代码来格式化 C 中的字节数组 在 Java 中 使用方法 buf putInt value buf putShort buf putDouble 等等 但我不知道如何将其移植到 C 我尝试过 MemoryS
  • #pragma pack(16) 和 #pragma pack(8) 的效果总是相同吗?

    我正在尝试使用来对齐数据成员 pragma pack n http msdn microsoft com en us library 2e70t5y1 28v vs 100 29 aspx 以下面为例 include
  • C# 粘贴到文本框时检查剪贴板中的字符

    有没有一些方法可以在粘贴到文本框 C 之前仅检查剪贴板中的字符 Ctrl V 和右键单击 gt 粘贴 但不使用 MaskedTextbox 在文本框文本更改中添加规则以仅接受数字 例如 private string value privat

随机推荐

  • Java中查找连续字符的字符串

    用 Java 编写一个函数 它接受一个字符串数组 并从字符串数组中仅返回那些连续重复特定字母的字符串 例如 如果 I P 是 Dauresselam slab fuss boolean clap 那么 O P 应该是 Dauresselam
  • 如何修复 jquery 库中的“jQuery 未定义”错误?

    导轨修复 确保在任何脚本加载之前 以便首先加载 jquery 这看起来真的很奇怪 当我加载页面时 出现 2 个 js 错误 在 Chrome 中 jquery ui min js 17 Uncaught ReferenceError jQu
  • MATLAB 图形绘制:在绘图过程中分配图例标签

    我正在以典型的 MATLAB 散点图格式绘制数据 通常 在绘制多个数据集时 我会使用命令 hold on 然后绘制每个数据 然后绘制图例 legend DataSet1 DataSet2 etcetera 但是 我在同一轴上绘制的 多个 数
  • CSS 固定跨度宽度

    在无序列表中 li span span The lazy dog li li span AND span The lazy cat li li span OR span The active goldfish li 允许添加类或样式属性 但
  • 为什么 Thread 的子类可以吞咽 InterruptedException?

    在布莱恩 戈茨的书中关于如何处理 InterruptedException 的文章 有一段话很突出 接受中断的一次是当您知道线程即将退出时 仅当调用可中断方法的类是 Thread 而不是 Runnable 的一部分时 才会出现这种情况 我不
  • C# 条件日志记录/跟踪

    我想向我的 C 应用程序添加日志记录或跟踪 但如果日志详细级别设置得太低以致于不会记录消息 我不希望记录格式化字符串或计算值的开销 在 C 中 您可以使用预处理器定义宏来阻止代码被执行 如下所示 define VLOG level expr
  • 从 Subversion 部署网站

    我是 subversion 的新手 想知道如何从开发转向暂存 然后生产 我想我掌握了为发布创建分支的概念详细信息在这里 但我如何实际部署分支呢 理想情况下 我可以建立一个新网站并从分支复制文件 但我担心将任何 svn 绑定复制到生产环境中
  • 在 PHP 中解析转义的 JSON

    我是 PHP 世界的新手 在 PHP 中解析 JSON 时遇到问题 我想使用我的 Java 客户端将数据 POST 到 PHP 脚本Apache HttpClient 4 x and Gson My JSON Knt KntWatchId
  • 合并两个数组并使用 jquery 创建第三个数组

    我有 2 个数组arr1 A B C D 和 arr2 a b c d 我想通过以下方式组合这两个数组来创建第三个数组 arr3 A a B b C c D d 我怎样才能使用 jquery 实现这一点 请帮忙 尝试使用jquery的 me
  • 如何在Delphi中编写一个EXE,它也是一个COM服务器

    我有一个 Delphi 2007 应用程序 它只是一个标准的 exe 我想向它添加一个 COM 接口 我已经有一个 COM dll 它导出多个 COM 对象 并且运行良好 然而 当我尝试将 dll 中的 COM 逻辑 即 exports 和
  • C/C++/Java 中 volatile 说明符的用法

    在浏览有关多线程编程的许多资源时 通常会出现对易失性说明符的引用 很明显 至少在 C C 和 Java 版本 1 4 及更早版本 中 使用此关键字不是实现多线程之间同步的可靠方法 以下是维基百科列出的 没有解释如何 作为此说明符的典型用法
  • 在 $.ajax 成功中迭代 JSON

    当用户单击按钮时 我想返回一些数据并迭代 JSON 以便可以将结果附加到表行 此时我只是想让我的循环工作 这是我的代码 我的 JSON 返回如下 COLUMNS username password DATA foo bar button c
  • 如何在指定打印机上打印Jasper Reports?

    我想要的只是打印 Jasper 报告 而无需用户选择打印机 我搜索过但没有有效的解决方案 这是我的代码的相关部分 compile to jasper String report JasperCompileManager compileRep
  • forEach 内的异步函数与 js 循环[重复]

    这个问题在这里已经有答案了 可能的重复 javascript 使用一个回调执行一堆异步方法 我已经为这个问题苦苦挣扎了好几天 但我就是想不出一种优雅的方法来处理它 问题就在这里 我正在运行 forEach 循环 我需要知道一切何时完成 由于
  • 将非常大的 int 转换为 double,在某些计算机上会损失精度

    我目前正在学习cpp中的类型间数据转换 我被教导说 对于一个非常大的整数 我们 对于某些计算机 可能会遭受损失 转换为双精度时的精度 但该声明没有提供理由 有人可以提供解释和例子吗 谢谢 假设浮点数使用 N 位存储 现在 我们假设这个浮点数
  • JPA 工作单元克隆中遇到空或零主键

    我了解到JPA并有任务创建数据库并向其中插入一些值 我想知道如何找出最近插入的对象的ID是什么 所以我找到了一种我需要使用的方法flush的方法EntityManager 不幸的是我得到了 工作单元克隆中遇到空或零主键 当我使用上述方法时出
  • 如何检查 NSNumber 中的空值

    首先我承认我的无知 在我从事项目的几个月里 我已经学到了关于 Objective C 的一切 我还发现 Objective C 似乎使我使用过的任何其他语言中的简单问题变得复杂 这非常令人沮丧 这个问题就是一个例子 在第一次运行中 我的应用
  • 在 Android Lollipop 上使用 NFC 激活设备所有者

    我正在尝试使用 NFC 在设备上设置设备所有者包 Lollipop 概述中提到了here 要部署并激活设备所有者 您必须执行 NFC 数据 当设备处于运行状态时从编程应用程序传输到设备 其未配置状态 此数据传输发送相同的信息 如托管配置中描
  • 如何从完整的文件名列表中删除文件扩展名?

    我正在使用以下命令来获取包含名为的目录中的所有文件的列表tokens import os accounts next os walk tokens 2 Output gt gt gt print accounts DS Store Amie
  • MFC 应用程序到 Unicode/MBCS 的分段转换

    我有一个大型 MFC 应用程序 我正在扩展它以允许多语言输入 目前 我需要允许用户在单个对话框的编辑框中输入 Unicode 数据 有没有办法在不为整个应用程序打开 UNICODE 或 MBCS 的情况下执行此操作 我目前只需要转换应用程序