Меню в Windows
От: Luchkin  
Дата: 24.12.01 16:43
Оценка:
Может ли кто-нибудь сказать с каким цветом фона прорисовывается главное меню приложения в Windows? Изменение настроек цвета фона меню в Display Properties на цвет фона главного меню влияния не оказывает.
Re: Меню в Windows
От: Кодт Россия  
Дата: 24.12.01 16:56
Оценка:
Здравствуйте Luchkin, Вы писали:

L>Может ли кто-нибудь сказать с каким цветом фона прорисовывается главное меню приложения в Windows? Изменение настроек цвета фона меню в Display Properties на цвет фона главного меню влияния не оказывает.


На закладке Appearance, Item=Menu, два цвета: фона и текста. Нормально работает...
(только что проверил).

Может, программа похерила обработку WM_SYSCOLORCHANGE? (обновление по изменении системных цветов).
Остальные-то программы работают или нет?

Еще может быть, что какая-либо программа-твикер постоянно подставляет свой вариант цвета COLOR_MENU?

Наконец, довольно тривиальная, но неприятная фича диалога Display Properties.
У него некоторые цвета взаимосвязанны (установив цвет одного элемента, тем самым устанавливаешь и другой элемент). Что именно — сходу не помню...

Для проверки — попробуйте изменить только цвет фона меню, тут же применить и посмотреть.
Перекуём баги на фичи!
Re[2]: Меню в Windows
От: Luchkin  
Дата: 25.12.01 06:13
Оценка:
Здравствуйте Кодт.

Вы всё верно описываете, так оно и есть, например, на ОС Win NT 4. Эта проблема вылезла только на Win XP. В ней изменение цвета фона меню на главное меню приложения влияния не оказывает, а оказывает влияние только на выпадающие меню следующих уровней.
Собственно у меня есть меню у которого я обрабатываю сообщение WM_DRAWITEM. Для цвета фона я использую кисть получаемую как GetSysColorBrush(COLOR_MENU). В результате при стандартной голубой палитре WinXP главное меню своим фоном выделяется от соседних элементов.

К>На закладке Appearance, Item=Menu, два цвета: фона и текста. Нормально работает...

К>(только что проверил).

К>Может, программа похерила обработку WM_SYSCOLORCHANGE? (обновление по изменении системных цветов).

К>Остальные-то программы работают или нет?

К>Еще может быть, что какая-либо программа-твикер постоянно подставляет свой вариант цвета COLOR_MENU?


К>Наконец, довольно тривиальная, но неприятная фича диалога Display Properties.

К>У него некоторые цвета взаимосвязанны (установив цвет одного элемента, тем самым устанавливаешь и другой элемент). Что именно — сходу не помню...

К>Для проверки — попробуйте изменить только цвет фона меню, тут же применить и посмотреть.
Re[3]: Меню в Windows
От: Кодт Россия  
Дата: 25.12.01 09:33
Оценка:
Здравствуйте Luchkin, Вы писали:

L>Здравствуйте Кодт.


L>Вы всё верно описываете, так оно и есть, например, на ОС Win NT 4. Эта проблема вылезла только на Win XP. В ней изменение цвета фона меню на главное меню приложения влияния не оказывает, а оказывает влияние только на выпадающие меню следующих уровней.

L>Собственно у меня есть меню у которого я обрабатываю сообщение WM_DRAWITEM. Для цвета фона я использую кисть получаемую как GetSysColorBrush(COLOR_MENU). В результате при стандартной голубой палитре WinXP главное меню своим фоном выделяется от соседних элементов.

Не получилось так — прочтем руководство

MSDN 2001, Platform SDK ... GetSysColor()

COLOR_MENUHILIGHT
Windows XP: The color used to highlight menu items when the menu appears as a flat menu (see SystemParametersInfo). The highlighted menu item is outlined with COLOR_HIGHLIGHT.

COLOR_MENUBAR
Windows XP: The background color for the menu bar when menus appear as flat menus (see SystemParametersInfo). However, COLOR_MENU continues to specify the background color of the menu popup.

Чтобы обойти платформенную зависимость, может быть, можно воспользоваться фоновым цветом окна (то есть — менюшки, ведь ее хэндл передается в обработчик WM_DRAWITEM).
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.