Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2009.01.18;
Скачать: [xml.tar.bz2];

Вниз

Как можно изменить значение 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2009.01.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.005 c
15-1227512397
nnov
2008-11-24 10:39
2009.01.18
звук sound blaster 5.1


15-1227442297
Slider007
2008-11-23 15:11
2009.01.18
С днем рождения ! 23 ноября 2008 воскресенье


15-1227183443
XeON
2008-11-20 15:17
2009.01.18
Компонент "Таблица"


2-1228576692
neon-w
2008-12-06 18:18
2009.01.18
Столбец из .txt в массив?


15-1227128472
АгатаКристи
2008-11-20 00:01
2009.01.18
JavaScript





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский