如何在 C++ Win32 GUI 中为文本框设置默认背景(灰色)文本?

2022-01-13 00:00:00 textbox default winapi c++ placeholder

创建文本框时

hwnd = CreateWindowEx(0, "EDIT", [...])

如何在该框的背景上设置占位符(默认,灰色)文本,当提供一些输入时它会消失?

How to set the placeholder (default, grey) text on the background of that box, which disappears when providing some input?

推荐答案

创建编辑控件后,发送EM_SETCUEBANNER 消息给它:

After creating the edit control, send the EM_SETCUEBANNER message to it:

SendMessage(hwndEdit, EM_SETCUEBANNER, 0, (LPARAM)L"Default text");

或使用 Edit_SetCueBannerText 宏:

Edit_SetCueBannerText(hwndEdit, L"Default text");

无论哪种方式,您还需要启用视觉样式.

Either way, you also need to enable Visual Styles.

相关文章