Установить цвет фона элемента управления? (WinAPI) - PullRequest
2 голосов
/ 24 июня 2010

Как установить задний цвет элемента управления (эквивалент элемента control.backcolor в .Net). Я попытался установить BKColor без удачи.

Например: TabHwnd = createWindowEx (NULL, WC_TAB ....

тогда как мне установить задний цвет TabHwnd?

Спасибо

Ответы [ 3 ]

3 голосов
/ 24 июня 2010

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

1 голос
/ 09 февраля 2012

Я знаю, что этот вопрос старый, но, возможно, этот ответ еще поможет некоторым другим.

Что мне помогло, так это вернуть пустую кисть для сообщений с цветом фона. Например:

switch (msg) {
  case WM_CTLCOLORDLG:
    return (INT_PTR)GetStockObject(HOLLOW_BRUSH);
  case WM_CTLCOLORSTATIC:
    return (INT_PTR)GetStockObject(HOLLOW_BRUSH);
}

Также вам не нужно беспокоиться об удалении "кистей", созданных GetStockObject.

0 голосов
/ 24 июня 2010

Попробуйте создать подкласс (см. SetClassLong) и обработайте WM_ERASEBKGND

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...