我无法从 UNICODE Latin Extended-A 打印字符 U+0103

问题描述 投票:0回答:1

当 UNICODE 字符 U+0103 是添加到列表框中的字符串的一部分时,我无法打印该字符

这是 UNICODE 的前 256 个字符之后的一个字符,更准确地说 U+0103 是根据

的第 259 个字符

https://en.wikipedia.org/wiki/List_of_Unicode_characters

TCHAR szBuffer[_CVTBUFSIZE];
swprintf_s(szBuffer, _CVTBUFSIZE, TEXT("rom\u00e2n\u0103"));
MessageBox(NULL, szBuffer, NULL, NULL);

工作正常,但如果我将 szBuffer 添加到列表框

SendMessage(hLanguages, LB_ADDSTRING, NULL, (LPARAM)szBuffer);

正确写入 U+00e2 字符,但下一个 U+0103 不正确

c winapi unicode
1个回答
0
投票

我会首先尝试为列表框设置另一种字体。例如:

HFONT font = (HFONT)GetStockObject(DEFAULT_GUI_FONT);
SendMessage(listboxHWND, WM_SETFONT, WPARAM (font), TRUE);

Lisbox 可能会显示未知字体的“框”,看起来像字母 I。

© www.soinside.com 2019 - 2024. All rights reserved.