Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.26;
Скачать: CL | DM;

Вниз

Не рисует! Помогите пожалуйста   Найти похожие ветки 

 
Cheshit ©   (2002-12-14 18:55) [0]

Наверно очень просто, но что-то упустил:

procedure DrawRFrame
(DC:HDC;Arect:TRect;AColor:TColor;offset:integer);
var ABr:HBRUSH;
ORgn,IRgn,DRgn:HRgn;
begin
SaveDc(DC);
ABr:=CreateSolidBrush(AColor);
ORgn:=CreateRoundRectRgn(ARect.Left-1,ARect.Top-,Arect.Right-1,Arect.Bottom-1,5,5);
InflateRect(ARect,-offset,-offset);
IRgn:=CreateRoundRectRgn(ARect.Left,ARect.Top,Arect.Right,Arect.Bottom,5,5);
CombineRgn(DRgn,ORgn,IRgn,RGN_DIFF);
SelectObject(DC,ABR);
PaintRgn(DC,DRGN);
RestoreDc(DC,-1);
end;


 
MBo ©   (2002-12-15 06:37) [1]

procedure DrawRFrame
(DC:HDC;Arect:TRect;AColor:TColor;offset:integer);
var ABr:HBRUSH;
ORgn,IRgn:HRgn;
begin
ABr:=CreateSolidBrush(AColor);
ORgn:=CreateRoundRectRgn(ARect.Left-1,ARect.Top-1,Arect.Right-1,Arect.Bottom-1,5,5);
InflateRect(ARect,-offset,-offset);
IRgn:=CreateRoundRectRgn(ARect.Left,ARect.Top,Arect.Right,Arect.Bottom,5,5);
CombineRgn(IRgn,ORgn,IRgn,RGN_DIFF);
FillRgn(DC,IRGN,ABR);
DeleteObject(ABR);
DeleteObject(IRGN);
DeleteObject(ORGN);
end;

1) Главная ошибка - приемный регион для CombineRgn должен существововать! Здесь начальные регионы больше не нужны, поэтому я использовал один из них. Иначе нужно для этого создать, например, прям. регион 1х1.
2) Ни к чему здесь сохранять и восстанавливать контекст - это затратная процедура. При выборе, например, новой кисти, нужно запоминать значение старой (возвращаемое SelectObject), и в конце восстанавливать
3) FillRgn вместо PaintRgn позволило и без этого обойтись
4) Обязательно надо уничтожать созданные тобой объекты GDI



Страницы: 1 вся ветка

Текущий архив: 2002.12.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
1-85902
msdn1
2002-12-17 00:10
2002.12.26
Image


14-86097
D-NICKNAME
2002-12-03 23:20
2002.12.26
Сочетание клавиш.


1-85981
iNew
2002-12-11 09:09
2002.12.26
Такой процедурой вывожу данные из COM порта в Мемо


6-86050
ДУБ
2002-10-30 16:01
2002.12.26
Интернет


14-86184
Zhirnov Maxim
2002-12-07 13:23
2002.12.26
Версия СТЭМа ФАИТ песни Belle из оперы Noterdam-De-Pari