Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Windows CE MessageBox不显示unicode文本和图标透明度_C++_Unicode_Mfc_Windows Ce - Fatal编程技术网

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

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

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

通过更改资源文件上的字体,我成功地在按钮中显示了“παρ”,但无法使其显示“παρ”ίσταταί" 在消息框中正确显示

结果如下所示:

我找到了一个开源的替代品,并在Windows CE中对其进行了一些小改动。结果如下:

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

如何使MessageBox使用另一种字体如何使XMessageBox没有透明的图标背景

在CUnicodeTestDlg::OnInitDialog方法中,可以找到的桌面版本,我有测试程序的repo供您查看代码

    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”。