Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2011, 18:17   #1
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
Восклицание Изменить цвет элемента STATIC

как на WinApi изменить цвет элемента STATIC. Уже 2 часа мучаюсь, в Интернете все перерыл, а никак разобраться не получается. Вот что я написал:
Код:
switch (msg)
{
hDC = GetDC(hEditFromSTATIC);
SetBkColor(hDC, RGB(55,0,0)); и так далее...}
только ничего не меняется.

в WinMain создал
Код:
hEditFromSTATIC = CreateWindow("STATIC", "Исходное число",
WS_CHILD|WS_VISIBLE, 
10,10,130 ,20, window1._hMainWnd, (HMENU)ID_EDIT_FROM_static, hInstance, NULL); а то что написал выше, обрабатывал уже в WinProc
Но.. ничего не работает....
Весь проект залил сюда:
http://zalil.ru/32307330
Dimarik вне форума Ответить с цитированием
Старый 18.12.2011, 18:55   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

обрабатывай сообщение WM_CTLCOLORSTATIC
counter вне форума Ответить с цитированием
Старый 18.12.2011, 19:00   #3
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

Код:
	switch (msg)
	{
	case WM_CTLCOLORSTATIC:
		hDC = GetDC(hEditFromSTATIC);
		SetBkColor(hDC, RGB(155,0,0));
		break;
так тоже не помогло
Dimarik вне форума Ответить с цитированием
Старый 18.12.2011, 19:07   #4
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

у меня так заработало, но мне кажется, что тут как-то криво сделано:
Код:
 case WM_CTLCOLORSTATIC:
        {
         hdcStatic = (HDC) wParam;
		 hDC = GetDC(hEditFromSTATIC);
        SetBkColor(hdcStatic, RGB(255,0,0));
		SetTextColor(hdcStatic, RGB(0,0,0));
        hbrBkgnd = CreateSolidBrush(RGB(255,0,0));
        
        return (INT_PTR)hbrBkgnd;
        }
Dimarik вне форума Ответить с цитированием
Старый 18.12.2011, 20:06   #5
Exception
Пользователь
 
Регистрация: 31.12.2007
Сообщений: 37
По умолчанию

Удаляй дескриптор hbrBkgnd иначе каждый раз при вызове WM_CTLCOLORSTATIC будет происходить утечка ресурсов. Или используй глобальную переменную hbrBkgnd, предварительно присвоив к ней кисть. Можно использовать GetStockObject если нужны стандартные системные цвета для фона.
Exception вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цвет заголовка элемента Handy Компоненты Delphi 2 17.10.2011 18:46
изменить цвет Dimarik HTML и CSS 2 20.07.2010 10:18
Изменить цвет в слове valerij Microsoft Office Excel 25 01.11.2009 17:58
Как с помощью JavaScript изменить цвет фона ячеек в таблице,так что бы можно было выбрать цвет из списка Gotessa JavaScript, Ajax 1 09.05.2009 16:05