Win32: Как настроить рисование элемента управления Edit?

мне нужно реализовать функциональностьEM_SETCUEBANNERгде подсказка текста появляется внутри элемента управления Edit:

Суть в том, что я не могу использовать 6-ю версию Common Controls, которая необходима для того, чтобы получить поставляемую Microsoft реализацию cue banner.i '

мы рассмотрели простое изменение текста элемента управления и формат шрифта на

Dark Gray Italic Text

но это бросит+ Изменить События (обертка компонента, предоставленная библиотекой более высокого уровня) что я могу'не найти способ избежать.

Поэтому вместо этого я собирался нарисовать текст по собственному усмотрению, нарисовать текст Cue Banner, когда элемент управления не сфокусирован и пуст, и в противном случае полагаться на рисование по умолчанию.

Элемент управления Edit неприятно представить собственный механизм рисования,как ListView, TreeView и другие предоставляют.

Другие люди смотрели на это, но это кажется почти невозможной задачей:

Из того, как все выглядит, яВам придется обрабатывать следующие сообщения:

WM_ERASEBKGND, WM_PAINT (по понятным причинам)WM_SETFOCUS, WM_KILLFOCUS (для предотвращения отображения белой полосы - описано выше)WM_CHAR (для обработки и обновления текста в элементе управления)

И мне также нужно найти способ отображения каретки в элементе управления, так как я неЯ нашел способ, позволяющий Windows сделать это для меня, и не рисовать белую полосу, о которой я говорил.

Это будет весело. :закатывать глаза:

Учитывая, что элемент управления Windows Edit никогда не предназначался для пользовательского рисования: кто-нибудь знает, как создать пользовательский элемент управления Windows Edit?

ЗаметкаЯ также приму ответы, которые решают мою проблему, вместо того, чтобы отвечать на мой вопрос. Но любой, кто хочет сделать пользовательский элемент управления «Правка», сталкиваясь с этим вопросом, вероятно, хотел бы получить ответ.

Ответы на вопрос(5)

Ваш ответ на вопрос