Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.01.18;
Скачать: CL | DM;

Вниз

Как можно изменить значение clBtnFace?   Найти похожие ветки 

 
Still Swamp   (2008-02-28 22:40) [0]

Как можно изменить значение clBtnFace? Или для любых иных значений цветов в рамках моего приложения.


 
Семеныч   (2008-02-28 23:42) [1]

clBtnFace, clWinow и т.п. - это системные цвета. Они устанавливается юзером в настройках экрана (или предопределены в выбранной юзером цветовой схеме). Меняются либо никак, либо во всей системе разом (см. функцию SetSysColors в WinAPI и пример ниже).

Если Вы считаете, что Ваша программа настолько замечательная, что имеет право использовать собственные цвета вместо тех, которые хочет юзер, то используйте для нее не системные, а явные цвета (clBlue, clGreen и т п.).

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

Вы разве этого хотите? Видимо, нет. Ну а уж если совсем неймется, то вот пример из MSDN:

// Window elements to change.
int aiElements[3] =
 {COLOR_ACTIVEBORDER, COLOR_ACTIVECAPTION, COLOR_WINDOW};

// Array of RGB values.
DWORD aColors[3];

// Define the new colors.

aColors[0] = RGB(0x80, 0x00, 0x80);  // dark purple
aColors[1] = RGB(0x00, 0x80, 0x80);  // dark cyan
aColors[2] = RGB(0xC0, 0xC0, 0xC0);  // light gray

// Set the window elements in aiElements to the colors
// specified in aColors.

SetSysColors(3, aiElements, aColors);


 
Still Swamp   (2008-03-02 00:02) [2]

Спасибо за ответ.
Я ни в коем разе не хочу менять цвета в системе. Более того, я сам очень не люблю когда софтина использует не системные цвета. Тем не менее, в данный момент у меня есть твердое пожелание заказчика изменить цвета во всем проекте на монохром, но крутить системные настройки цветов мне нет охоты.
Использовать явные цвета - не вариант, так как цвет многих элементов изменить нельзя, и единственным методом борьбы в этом случае я вижу полную перерисовку на OnPaint.  Более дешевый вариант изменить сами clBtnFace, clWindow. Жаль если это невозможно.



Страницы: 1 вся ветка

Текущий архив: 2009.01.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
2-1228411164
Витя
2008-12-04 20:19
2009.01.18
Совместный доступ разных процессов к одним данным


2-1228133156
dymok
2008-12-01 15:05
2009.01.18
SQL.Text сохранить в файл


9-1177170749
Evgraf
2007-04-21 19:52
2009.01.18
Примеры Clootie Direct3D


1-1206525888
Still Swamp
2008-03-26 13:04
2009.01.18
CustomDrawSubItem как получить Rect?


2-1228510663
Lamer6666
2008-12-05 23:57
2009.01.18
M2M приложение