在Win32 GUI中使用右键按钮

Using ↺ on a button in Win32 GUI

本文关键字:右键 按钮 Win32 GUI      更新时间:2023-10-16

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

然而,当我这样做时,我没有得到箭头字符,而是一个不同的字符?出了什么问题?

谢谢!

我将无耻地窃取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);

你选择的字体自然需要支持这个字符

嗯,你也可以这样做,这与@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字符串。