Как добавить фоновый текст в CCombobox
Мы часто видим фоновый текст в строке поиска, например "Поиск здесь", "Введите здесь для поиска" и т. Д., И он исчезает, когда мы начинаем печатать. Посмотрите на следующее:
Есть ли built-in
метод для реализации той же функциональности в MFC Application
для контроля CComboBox?
1 ответ
Используйте CComboBox::SetCueBanner
Это отправляет сообщение окна CB_SETCUEBANNER
, SetCueBanner
также доступен для CEdit
, Для этой функции требуется как минимум Windows Vista.
Эта функция только для Unicode, она должна иметь текст Unicode.
Если вы нацелены на WinXP, SetCueBanner
недоступен и программа не будет компилироваться. Но вы все еще можете отправить CB_SETCUEBANNER
(0x1703
) сообщение:
::SendMessageW(myComboBox->m_hWnd, CB_SETCUEBANNER, 0, (LPARAM)L"Text");
Это скомпилирует и запустит на всех системах, однако это не будет иметь никакого эффекта в Windows XP.