|
|
Содержит информацию области окна приложения, подлежащей перерисовке при обработке сообщения Windows API WM_PAINT.
Объявление переменной
Value=new TPaintStruct();
Собственные свойства
|
Название
| Тип
| Описание
|
hdc
| Number
| дескриптор контекста устройства
|
fErase
| Boolean
| признак необходимости перерисовки фона окна
|
rcPaint
| TRect
| прямоугольник области окна, требующий перерисовки
|
fRestore
| Boolean
| зарезирвировано для внутреннего использования системой
|
fIncUpdate
| Boolean
| зарезирвировано для внутреннего использования системой
|
rgbReserved
| String
| зарезирвировано для внутреннего использования системой
|
|
// Структура 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+ | Руководство пользователя
|
|
|
|
|
|