在Win32 GUI中的按钮上使用。

时间:2013-05-28 03:38:33

标签: c++ winapi unicode win32gui

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

但是,当我这样做时,我不会得到箭头字符而是另一个字符?出了什么问题?

谢谢!

2 个答案:

答案 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字符串。