powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / системные цвета
6 сообщений из 6, страница 1 из 1
системные цвета
    #33164402
Slip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как получить цвет системной палитры?(типа выделенной строки меню, фона окна и т.д.) VC++ 6.0
заранее спасибо за ответ
...
Рейтинг: 0 / 0
системные цвета
    #33164437
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GetSysColor()
...
Рейтинг: 0 / 0
системные цвета
    #33165613
raven1976
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот у меня вопрос в развитие этой темы

(VS.Net, C++ Win32 API, W2k)

Пишу в процедуре диалога:
(это я вычитал в Help для GetSysColor() и решил попробовать)

int aiElements[1] = {COLOR_BTNTEXT};

DWORD aColors_Old[1];
DWORD aColors_New[1];

//при иниц-ции диалога меняю цвет для одного из "display element"
case WM_INITDIALOG:

aColors_Old[0] = GetSysColor(COLOR_BTNTEXT); //сохраняю старий цвет
aColors_New[0] = RGB(0x80, 0x00, 0x80); // новий цвет dark purple
SetSysColors(1, aiElements, aColors_New); //устанавливаю новый цвет
тут все нормально, цвет новый

//потом при закрытии диалога пробую вернуть сохраненный старий цвет
SetSysColors(1, aiElements, aColors_Old);

но не тут то было, для ВСЕХ "display element" (COLOR_BTNTEXT, COLOR_ACTIVECAPTION, ...) устанавливается не сохраненный а стандартный серый цвет Windows и востановить цвета получается только перезагрузкой

Не подскажете в чем причина?
...
Рейтинг: 0 / 0
системные цвета
    #33165810
SeraTJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще, менять системные цвета для перерисовки одного из "display element" -- не самый лучший вариант.
Либо сам контрол рисовать, либо хотя бы почитай про WM_CTLCOLOR.
...
Рейтинг: 0 / 0
системные цвета
    #33165823
SeraTJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Remarks ( из MSDN-a )
The SetSysColors function sends a WM_SYSCOLORCHANGE message to all windows to inform them of the change in color. It also directs the system to repaint the affected portions of all currently visible windows.
...
Рейтинг: 0 / 0
системные цвета
    #33165989
raven1976
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeraTJВообще, менять системные цвета для перерисовки одного из "display element" -- не самый лучший вариант.
Либо сам контрол рисовать, либо хотя бы почитай про WM_CTLCOLOR.

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


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