Можно ли изменить цвет фона элемента управления редактирования внутри редактирования?
Я пишу оболочку GUI для Windows API прямо сейчас (я не могу использовать QT или MFC). Сама библиотека чрезвычайно проста. После создания подклассов общих элементов управления Windows (и упаковки их в классы) я столкнулся с проблемой. Насколько я знаю (и я надеюсь, что я ошибаюсь), только родительский элемент управления может обрабатывать такие сообщения, как WM_CTLCOLOREDIT и то же самое. Но я хочу иметь возможность написать что-то вроде этого:
myedit-> SetBkColor (RGB (0, 0, 0));
Можно ли вообще это реализовать (как, например, в формах Windows), или я должен написать новый элемент управления с нуля и написать картину сам?
Спасибо, #535.
1 ответ
Вы можете сделать это, но это изрядная работа. Основная идея заключается в том, что вы создаете другое окно, которое будет действовать в качестве родителя для элемента управления, который вы подклассифицируете. При этом вы отслеживаете, обрабатывается ли сообщение уведомления (например, WM_CTLCOLOREDIT) родительским элементом или самим субклассифицированным элементом управления. Если он обрабатывается родителем, он просто пропускает сообщение, но если он должен обрабатываться самим подклассовым элементом управления, он отражает его обратно в элемент управления.