gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:22:39 26 4
gpt4 key购买 nike

我有一个大型 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 类。

关于c++ - MFC 应用程序到 Unicode/MBCS 的分段转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1322801/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com