![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как рисовать цветом кнопки [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