C++ Windows CE MessageBox不显示unicode文本和图标透明度
我正在修改Windows CE应用程序,以便通过Unicode显示各种语言 通过更改资源文件上的字体,我成功地在按钮中显示了“παρ”,但无法使其显示“παρ”ίσταταί" 在消息框中正确显示 结果如下所示: 我找到了一个开源的替代品,并在Windows CE中对其进行了一些小改动。结果如下: 我的问题是由于无法通过消息框挂钩(Win CE中不可用)设置字体。我在XMessageBox中将字体设置为“Arial Unicode MS”,文本将显示,但图标不正确 如何使MessageBox使用另一种字体或如何使XMessageBox没有透明的图标背景 在CUnicodeTestDlg::OnInitDialog方法中,可以找到的桌面版本,我有测试程序的repo供您查看代码C++ Windows CE MessageBox不显示unicode文本和图标透明度,c++,unicode,mfc,windows-ce,C++,Unicode,Mfc,Windows Ce,我正在修改Windows CE应用程序,以便通过Unicode显示各种语言 通过更改资源文件上的字体,我成功地在按钮中显示了“παρ”,但无法使其显示“παρ”ίσταταί" 在消息框中正确显示 结果如下所示: 我找到了一个开源的替代品,并在Windows CE中对其进行了一些小改动。结果如下: 我的问题是由于无法通过消息框挂钩(Win CE中不可用)设置字体。我在XMessageBox中将字体设置为“Arial Unicode MS”,文本将显示,但图标不正确 如何使MessageBox
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 );
请注意:“Arial Unicode MS”需要安装在设备或模拟器上,以便XMessageBox正确显示希腊文本。我通过在设备上安装相应的非英语操作系统解决了这个问题(该设备是日语的,使用的是日语文本,而不是希腊语)。这样可以正确显示文本,并且MessageBox上的按钮使用适当的语言。我删除了XMessageBox的使用,并保留了标准的Windows API one。我在GitHub代码中看不到错误,这可能是Windows CE的一些奇怪之处。为什么不删除图标?这些图标很大,需要一段时间对于4个图标,输出1MB。同时仔细检查是否安装了“Arial Uniocde MS”。