program APIx_Project3;
uses
windows,
messages,
commctrl;
var
WinClass : TWndClass;
Form : HWND;
Handle : HWND;
Msg : TMSG;
hFont : HWND;
HRegion1, Hreg2, Hreg3: THandle;
Region: HRGN;
procedure ShutDown; //процедура завершения программы
begin
DeleteObject(hFont); //удаление шрифта
UnRegisterClass('TAPIxForm', Form); //удаление окна
ExitProcess(Form); //закрытие программы
end;
function WindowProc(hwnd, msg, wparam, lparam: longint): longint; stdcall; //обработчик сообщений
begin
Result := DefWindowProc(hwnd, msg, wparam, lparam);
case Msg of
WM_COMMAND:
if (lParam = ...) and (HiWord(wParam) = BN_CLICKED) then
begin
...;
end;
WM_DESTROY: ShutDown;
end;
end;
begin
Form := GetModuleHandle(nil);
with WinClass do
begin
Style := CS_PARENTDC;
hIcon := LoadIcon(Form, MAKEINTRESOURCE('APIXICON'));
lpfnWndProc := @WindowProc;
hInstance := Form;
hbrBackground := COLOR_BTNFACE + ...;
lpszClassName := 'TAPIxForm';
hCursor := LoadCursor(0, IDC_ARROW);
Region := CreateEllipticRgn(0, 0, 490, 300);
SetWindowRgn(Handle, Region, True);
end;
InitCommonControls;
RegisterClass(WinClass);
Handle := CreateWindowEx(0, 'TAPIxForm', 'NAC',
WS_POPUP or WS_GROUP or
WS_VISIBLE or WS_MINIMIZEBOX or WS_MAXIMIZEBOX or WS_SYSMENU or WS_EX_CLIENTEDGE,
219, 116, 500, 366,
0, 0,
Form, nil);
hFont := CreateFont(
-11, 0, 0, 0, 0, 0, 0, 0,
DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH or FF_DONTCARE, 'MS Sans Serif');
while(GetMessage(Msg, 0, 0, 0)) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end.