|
|
Отмечает начало процесса рисования в указанном окне.
Синтаксис
function BeginPaint(
| hWnd, | PntStr
| ): Number;
|
Параметры
|
Параметр
| Тип
| Описание
|
hWnd
| Number
| дескриптор окна
|
PntStr
| TPaintStruct
| структура PaintStruct
|
|
Возвращаемое значение
Дескриптор контекста устройства указанного окна в случае успеха или null в противном случае.
// Структура 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+ | Руководство пользователя
|
|
|
|
|
|