Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

окно...

354
10 мая 2006 года
ШпиЁн
468 / / 19.02.2006
как создать окошко не стандартного цвета (ECE9D8 или что-то наподобие), а скажем, серого?

P.S. например, как MesssageBox'ы из 3D Studio MAX 6.0, извините за примитивизм, но ясно выразить мысли не могу (((
1.8K
10 мая 2006 года
k3Eahn
365 / / 19.12.2005
Цитата:
Originally posted by ШпиЁн
как создать окошко не стандартного цвета (ECE9D8 или что-то наподобие), а скажем, серого?

P.S. например, как MesssageBox'ы из 3D Studio MAX 6.0, извините за примитивизм, но ясно выразить мысли не могу (((


Если класс окна ты создаёшь сам, то в WNDCLASSEX.hbrBackground надо положить кисть для отрисовки бэкграунда.
Если же окно какого-то предопределённого класса то замени кисть посредством SetClassLong.

354
10 мая 2006 года
ШпиЁн
468 / / 19.02.2006
Я создаю диалоговое окошко через DialogBox. Как быть в этом случае?
1.8K
10 мая 2006 года
k3Eahn
365 / / 19.12.2005
Цитата:
Originally posted by ШпиЁн
Я создаю диалоговое окошко через DialogBox. Как быть в этом случае?


OK. Тогда для отрисовки фона диалога обрабатывай WM_CTLCOLORDLG, примерно так:

 
Код:
case WM_CTLCOLORDLG:return(GetStockObject(LTGRAY_BRUSH));
354
11 мая 2006 года
ШпиЁн
468 / / 19.02.2006
Как потом вывести текст на нём? DrawText отрисовывает еще белый фон под самим текстом(((
324
11 мая 2006 года
AndreySar
532 / / 01.08.2004
Цитата:
Originally posted by ШпиЁн
Как потом вывести текст на нём? DrawText отрисовывает еще белый фон под самим текстом(((



 
Код:
SetBkMode(hDC, TRANSPARENT);
8.9K
23 ноября 2006 года
Kap
77 / / 10.09.2006
есть еще один выход (на мой взгляд более красивый)- использовать GDI+. чтобы залить диалог фоном надо взять его контекст и нарисовать на нем хоть битмап ). А, да- еще надо знать его область.

Graphics g(dc);
LinearGradientBrush brush(bounds, Color(255, 0, 51, 153), Color(255, 0, 51, 153),LinearGradientModeBackwardDiagonal);
g.FillRectangle(&brush,1,1,100,100);

Градиентной кистью голубого цвета заполнится область 1,1,100,100.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог