Kyudos Ответов: 1

Почему цвет фона по умолчанию для cstatusbar не COLOR_3DFACE?


Это мелочь, но такая вещь, которая меня раздражает.

У меня есть CStatusBar в диалоговом окне, на котором у меня есть другие элементы управления (Панель инструментов, ActiveX и т. д.). Я установил цвет фона других элементов управления так, чтобы он смешивался с цветом диалогового окна по умолчанию (COLOR_3DFACE). В моей системе это RGB(240, 240, 240).

Однако цвет фона строки состояния (который я еще не установил) - RGB(241, 237, 237)? Почему это так? Могу ли я изменить значение по умолчанию?

Что я уже пробовал:

Я пытался:
m_Status.GetStatusBarCtrl().SetBkColor(CLR_DEFAULT);
и
COLORREF cr = ::GetSysColor(COLOR_3DFACE);
m_Status.GetStatusBarCtrl().SetBkColor(cr);
Это не имеет никакого значения.

Richard MacCutchan

Попробуйте совсем другой цвет, например красный, чтобы увидеть, действительно ли происходит изменение. Некоторые цвета настолько близки друг к другу, что трудно заметить изменения.

Kyudos

Установка цвета фона, кажется, вообще не работает, даже установка на красный цвет. Очевидно, что цвета, о которых идет речь, не настолько различны, но они достаточно различны, чтобы я заметил. Хотя не думаю, что это стоит того, чтобы собственник рисовал панели только для этого.

Richard MacCutchan

В документации сказано, что это можно сделать: Класс CStatusBarCtrl[^]. Вы уверены, что ваш код каким-то образом не сбрасывает его?

1 Ответов

Рейтинг:
1

JustWatchLittle

Пример того, что упомянул Ричард:

Этот фон-RGB 240,240,240
Этот фон-RGB 237,237,241
Этот фон-RGB 224,224,224
Этот фон-RGB 255,0,0


Обратите внимание, COLORREF-это 0x00bbggrr (COLORREF (Windows)[^]) в то время как в html-div я использовал его 0xrrggbb.

Я бы опубликовал это как комментарий, но комментарии не обрабатывают div. Извиняюсь.