Почему цвет фона по умолчанию для 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[^]. Вы уверены, что ваш код каким-то образом не сбрасывает его?