4

我正在制作一个 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

但是,当我这样做时,我没有得到箭头字符而是一个不同的字符?怎么了?

谢谢!

4

2 回答 2

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);

自然,您在窗口中选择的字体将需要支持该字符。

于 2013-05-28T04:32:50.550 回答
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 等价物,它会评估为普通的 ASCII 字符串。UNICODE

于 2014-06-22T05:36:52.407 回答