c++ - 如何在CCombobox中添加背景文字

标签 c++ mfc ccombobox

我们经常在搜索栏上看到背景文本,例如“在此处搜索”、“在此处输入以搜索”等,当我们开始输入时它会消失。看看下面的:

A sample of what I need

是否有任何内置方法可以在MFC 应用程序 中为CComboBox Control 实现相同的功能? ?

最佳答案

使用CComboBox::SetCueBanner

这将发送窗口消息 CB_SETCUEBANNERSetCueBanner 也可用于 CEdit。此功能至少需要 Windows Vista。

此功能仅支持unicode,必须对文本进行unicode。

如果您的目标是 WinXP,SetCueBanner 不可用,程序将无法编译。但是您仍然可以发送 CB_SETCUEBANNER (0x1703) 消息:

::SendMessageW(myComboBox->m_hWnd, CB_SETCUEBANNER, 0, (LPARAM)L"Text");

这将在所有系统上编译和运行,但在 Windows XP 中不会有任何影响。

关于c++ - 如何在CCombobox中添加背景文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32177651/

相关文章:

c++ - 比 MFC 更好的框架?

C++ MFC CComboBox 为空

c++ - 在 C++ 中生成随机 float 不起作用(Visual Studio 2013)

c++ - 如何从文件中读取一行中的特定字符?

c++ - 在抽象基类的不同实现中返回没有复制的类成员与返回本地对象

mfc - 设置Rich Edit控件2.0创建时的背景色

c++ - 为什么 `std::unordered_map::erase(key_type const&)` 返回已移除元素的数量?

c++ - opencv mat与CImage之间的转换

c++ - 使用水平滚动条手动设置 MFC CComboBox 下拉高度

c++ - 有什么方法可以将 CString 以外的对象添加到 MFC 中的 CComboBox 中吗?