我正在制作Win32 GUI应用程序,我想在按钮上显示↺字符。
通常,我认为会插入一个像这样的unicode字符:
HWND button = CreateWindow("BUTTON", "\u27F3",
WS_TABSTOP|WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON, size - 105,
size - 29, 100, 24, hwnd, (HMENU)IDI_BUTTON,
GetModuleHandle(NULL), NULL);
其中“\ u27F3”是此处描述的“C / C ++ / Java”下的unicode字符 http://www.fileformat.info/info/unicode/char/27f3/index.htm
但是,当我这样做时,我不会得到箭头字符而是另一个字符?出了什么问题?
谢谢!
答案 0 :(得分:8)
我将从Raymond Chen的评论中无耻地窃取并显示更正后的代码:
HWND button = CreateWindowW(L"BUTTON", L"\u27F3",
WS_TABSTOP|WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON, size - 105,
size - 29, 100, 24, hwnd, (HMENU)IDI_BUTTON,
GetModuleHandle(NULL), NULL);
当然,您在窗口中选择的字体需要支持该字符。
答案 1 :(得分:0)
嗯,你也可以这样做,这也与@Mark Ransom答案没什么不同: -
HWND button = CreateWindowW(TEXT("BUTTON"), TEXT("\u27F3"),
WS_TABSTOP|WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON, size - 105,
size - 29, 100, 24, hwnd, (HMENU)IDI_BUTTON,
GetModuleHandle(NULL), NULL);
并在程序中定义UNICODE,如下所示: -
#define UNICODE
说明: - TEXT
是一个宏,如果定义了UNICODE
,它将扩展为unicode等效,否则它将计算为正常的ASCII字符串。