Головна сторінка
Top.Mail.Ru Яндекс.Метрика
Форум: "Основна";
Поточний архів: 2002.12.26;
Завантажити: [xml.tar.bz2];

Вниз

Чи не малює! Допоможіть будь ласка Знайти схожі гілки


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

Напевно дуже просто, але щось упустив:

procedure DrawRFrame
(DC: HDC; Arect: TRect; AColor: TColor; offset: integer);
var ABr: HBRUSH;
ORgn, IRgn, DRgn: HRgn;
починати
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;
починати
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;
Завантажити: [xml.tar.bz2];

Вгору





Пам'ять: 0.54 MB
Час: 0.024 c
1-86034
Vityok
2002-12-15 18:24
2002.12.26
BIOS


14-86172
VictorT
2002-12-06 21:51
2002.12.26
завдання :)


1-85914
Рафік
2002-12-11 12:13
2002.12.26
Проблем зі звітом


14-86148
Vopros
2002-12-06 13:19
2002.12.26
прикол


14-86105
KSergey
2002-12-04 15:18
2002.12.26
Налаштування прав доступу до властивостей IE





африкаанс албанський арабська вірменин азербайджанець баскський білоруський болгарська каталонський Китайська (спрощене письмо) Китайський традиційний) хорватський чеська данську мову нідерландський Ukranian естонець Філіппінська фінську мову французький
галісійська грузинський німецький грецький гаїтянський креольський давньоєврейську хінді угорський ісландський індонезієць ірландський італійський японський корейський латиська литовець македонець малайський мальтійський норвежець
перс полірування португальська румунський російська сербський словацький словенський іспанська суахілі шведську мову тайський турецька український урду в'єтнамський валлійський ідиш бенгальський боснійський
кебуано есперанто гуджараті хауса хмонг ігбо яванський каннада кхмерская Лао латинь маорі маратхі монгольський непальська панджабі сомалійський тамільська телугу йоруба
зулуський
Англійська Французький Німецький Італійський Португальська Русский Іспанська