Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как рисовать цветом кнопки [D7, Win95/98, WinXP]


AD_infiniTUM ©   (2004-07-22 20:57:00) 

Рисую стрелку таким образом
DC := GetDC(Wnd);
Pen := CreatePen(PS_SOLID, 1, COLOR_BTNFACE + 1);
Brush := CreateSolidBrush(COLOR_BTNFACE + 1);
OldP := SelectObject(DC, Pen);
OldB := SelectObject(DC, Brush);
Sign[0].X := X1;
Sign[0].Y := Y1;
Sign[1].X := X1 + SignWidth;
Sign[1].Y := Y1;
Sign[2].X := X1 + (SignWidth div 2);
Sign[2].Y := Y1 + SignHeight - 1;
Polygon(DC, Sign, 3);
SelectObject(DC, OldP);
SelectObject(DC, OldB);
DeleteObject(Pen);
DeleteObject(Brush);
ReleaseDC(Wnd, DC);

По идее она должна быть цветом стандартной кнопки, но она - черная. Что я делаю не правильно?

Зарнее спасибо.


AD_infiniTUM   (2004-07-23 08:43:00) [1]

Спасибо, все работает.

> Ну вдруг у него что-то своё там в программе, специфическое

Нет ничего специфического :)


Kind   (2004-07-23 00:16:00) [2]

Ну вдруг у него что-то своё там в программе, специфическое :)


DVM   (2004-07-22 23:53:00) [3]


> Kind ©   (22.07.04 23:45) [2]

не надо + 1


Kind   (2004-07-22 23:45:00) [4]

CreatePen, CreateBrush не понимают системные константы цвета.
Используй GetSysColor(Системный цвет)

Делай так:
DC := GetDC(Wnd);
Pen := CreatePen(PS_SOLID, 1, GetSysColor(COLOR_BTNFACE + 1));
Brush := CreateSolidBrush(GetSysColor(COLOR_BTNFACE + 1));
OldP := SelectObject(DC, Pen);
OldB := SelectObject(DC, Brush);
Sign[0].X := X1;
Sign[0].Y := Y1;
Sign[1].X := X1 + SignWidth;
Sign[1].Y := Y1;
Sign[2].X := X1 + (SignWidth div 2);
Sign[2].Y := Y1 + SignHeight - 1;
Polygon(DC, Sign, 3);
SelectObject(DC, OldP);
SelectObject(DC, OldB);
DeleteObject(Pen);
DeleteObject(Brush);
ReleaseDC(Wnd, DC);

И всё пучком.


DVM   (2004-07-22 23:42:00) [5]

GetSysColor(COLOR_BTNFACE) вместо COLOR_BTNFACE + 1


Наверх

Титульная страница Поиск, карта сайта Написать письмо