gpt4 book ai didi

c++ - Windows CE MessageBox 不显示 unicode 文本和图标透明度

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

我正在修改 Windows CE 应用程序以通过 Unicode 显示各种语言。

通过更改资源文件上的字体,我设法在按钮中显示,但无法在 MessageBox 中正确显示“παρίσταταί”。

结果是这样的:

Should show "παρίσταταί"

我找到了一个开源 XMessageBox替换并让它在 Windows CE 中工作,并进行一些小的更改。结果是这样的:

What happened to the icon background?

我的问题是由于无法通过 Message Box Hook 设置字体(在 Win CE 中不可用)我在 XMessageBox 中将字体设置为“Arial Unicode MS”,文本将显示但图标不显示正确的。

如何让 MessageBox 使用另一种字体如何让 XMessageBox 没有透明的 ICON 背景?

桌面版XMessageBox可以查到here我有GitHub测试程序的 repo 供您查看代码 - 在 CUnicodeTestDlg::OnInitDialog 方法中。

    CStringW greekText( L"παρίσταταί" );

TheButton.SetWindowText( greekText );

::MessageBox(*this,
greekText,
L"Is this greek?", MB_YESNO | MB_ICONHAND );

XMessageBox( *this,
greekText,
L"Is this greek?", MB_YESNO | MB_ICONHAND );

请注意:XMessageBox 需要在设备或模拟器上安装“Arial Unicode MS”才能正确显示希腊文本。

最佳答案

我通过在其上安装了相应的非英语操作系统的设备解决了这个问题(这是日语并且使用日语文本 - 而不是希腊语)。通过这种方式,文本可以正确显示,并且 MessageBox 上的按钮使用适当的语言。我删除了 XMessageBox 的使用,并保留了标准的 Windows API。

关于c++ - Windows CE MessageBox 不显示 unicode 文本和图标透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38319723/

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