|
|
Рисует границу вокруг указанного региона с использованием указанной кисти.
Синтаксис
function FrameRgn(
| hDC, | hRgn, | hBrush, | Width, | Height
| ): Boolean;
|
Параметры
|
Параметр
| Тип
| Описание
|
hDC
| Number
| дескриптор контекста устройства
|
hRgn
| Number
| дескриптор региона
|
hBrush
| Number
| дескриптор кисти
|
Width
| Number
| ширина кисти
|
Height
| Number
| высота кисти
|
|
Возвращаемое значение
true в случае успеха или false в противном случае.
// Структура PaintStruct для функций BeginPaint/EndPaint var pns=new TPaintStruct();
// Форма без заголовка frm=new TForm(); frm.BorderStyle=bsNone; frm.Width =w1=GetSystemMetrics(SM_CXSCREEN)/3; frm.Height=h1=GetSystemMetrics(SM_CYSCREEN)/3; frm.Cursor=crHandPoint; frm.OnMouseDown=frm_MouseDown; frm.WindowProc=new_WndProc;
// Кисти br1=CreateSolidBrush(0x005080.toTColor()); br2=CreateSolidBrush(0x004070.toTColor());
// Кнопка btn=new TButton(frm); btn.Caption="Закрыть"; btn.Left=frm.ClientWidth -btn.Width -20; btn.Top =frm.ClientHeight-btn.Height-20; btn.Hint="Закрыть окно"; btn.ShowHint=true; btn.OnClick=btn_Click;
frm.ShowModal();
// Обработчик события OnClick кнопки "Закрыть" function btn_Click(btn) { frm.Close(); }
// Оконная процедура главной формы function new_WndProc(Sender,Msg,wParam,lParam) { var w2=w1-20,h2=h1-20; var hWnd=Sender.Handle; var owp=Sender.OldWndProc;
switch (Msg) { case WM_PAINT: hDC=BeginPaint(hWnd,pns);
// Прямоугольник с закругленными углами rgn1=CreateRoundRectRgn(0,0,w1,h1,40,40);
// Эллипс внутри прямоугольника rgn2=CreateEllipticRgn(20,20,w2,h2); CombineRgn(rgn1,rgn1,rgn2,RGN_DIFF);
FillRgn(hDC,rgn1,br1); FrameRgn(hDC,rgn1,br2,1,1);
DeleteObject(rgn2); DeleteObject(rgn1);
EndPaint(hWnd,pns); return 0;
case WM_DESTROY: DeleteObject(br1); DeleteObject(br2);
SetWindowLong(hWnd,GWL_WNDPROC,owp); }
return CallWindowProc(owp,hWnd,Msg,wParam,lParam); }
// Обработчик события OnMouseDown главной формы function frm_MouseDown(frm,Button,Shift,X,Y) { var crs=frm.Cursor;
if (Button!=mbLeft) return;
ReleaseCapture(); frm.Cursor=crDrag;
// Войти в процесс перемещения формы мышью frm.Perform(WM_SYSCOMMAND,0xF009,0);
frm.Cursor=crs; }
|
Совместимость
Windows API
|
JS+ | Руководство пользователя
|
|
|
|
|
|