powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Цвет фона в TabCtrl
6 сообщений из 6, страница 1 из 1
Цвет фона в TabCtrl
    #33105863
PavelT100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для отрисовки фона STATIC контролов надо обрабатывать сообщение WM_CTLCOLORSTATIC, для кнопок WM_CTLCOLORBTN.
А какое сообщение надо обработать для отрисовки фона TabCtrl ?
Я проверил все сообщения от WM_CTLCOLORMSGBOX до MN_GETHMENU — ничего не получается.
...
Рейтинг: 0 / 0
Цвет фона в TabCtrl
    #33106179
Фотография Землекоп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С этим делом похоже, что попа в Windows. tab control не шлет родителю WM_CTLCOLOR и тп. Отрисовка бэкграунда засунута в WM_PAINT, как написано во многих статьях, и добраться до установки цвета шансов нет. Лучший способ - сделать этот элемент owner draw fixed и рисовать самому. Думаю, что в инете есть примеры на этот счет.
...
Рейтинг: 0 / 0
Цвет фона в TabCtrl
    #33106185
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NM_CUSTOMDRAW
...
Рейтинг: 0 / 0
Цвет фона в TabCtrl
    #33106195
Фотография Землекоп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivNM_CUSTOMDRAW

Customizing a Control's Appearance Using Custom Draw


Currently, the following controls support custom draw functionality:

Header controls

List-view controls

Rebar controls

Toolbar controls

ToolTip controls

Trackbar controls

Tree-view controls



tab control в списке нет
...
Рейтинг: 0 / 0
Цвет фона в TabCtrl
    #33106689
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой, я что-то вечера прочитал TreeCtrl
...
Рейтинг: 0 / 0
Цвет фона в TabCtrl
    #33108479
PavelT100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот что я сделал:
создал TabCtrl со стилями WS_VISIBLE|TCS_SINGLELINE|0x0040|TCS_FOCUSNEVER|TCS_OWNERDRAWFIXED и идентификатором idsOng1

В функции родительского MDI окна (контрол у меня находтится в MDI окне) обрабатываю сообщение WM_DRAWITEM:


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
case WM_DRAWITEM:
        if(msg.wParam == idsOng1)
        {
        TMDIChild::Go(msg); // это наши заморочки - это значит что выполняется стандартный обработчик
         LPDRAWITEMSTRUCT lpDrawItem = (LPDRAWITEMSTRUCT) msg.lParam;
        RECT rect = lpDrawItem->rcItem;
        rect.top += ::GetSystemMetrics(SM_CYEDGE);

            SetBkMode(lpDrawItem->hDC, TRANSPARENT);
            FillRect(lpDrawItem->hDC, &rect, gD.Brush(clrWindow)); //вот это выполняется и закрашивает 
//нужным цветом, но к сожалению только закладку, а не все поле таба где расположены конторлы

        SetBkColor(lpDrawItem->hDC, ini.rgb(clrWindow)); //а вот это не вполняется даже при отмене предыдущей функции, а вот почему ?
        return;
        }



Что я делаю не правильно ? Почему не работает SetBkColor и как заставить изменять цвет фона для всего таба, а не только для закладки ?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Цвет фона в TabCtrl
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]