Содержание материала

 

Code:

program SmallPrg;

 

uses

Windows, Messages;

 

const

WinName = 'MainWClass';

 

function MainWndProc(Window: HWnd; AMessage, WParam, LParam: Longint): Longint; stdcall;

begin

//подпрограмма обработки сообщений

case AMessage of

   WM_DESTROY:

   begin

     PostQuitMessage(0);

     Result := 0;

     Exit;

   end;

   else

     Result := DefWindowProc(Window, AMessage, WParam, LParam);

end;

end;

 

function InitApplication: Boolean;

var

wcx: TWndClass;

begin

//Заполняем структуру TWndClass

// перерисовываем, если размер изменяется

wcx.style := CS_HREDRAW or CS_VREDRAW;

// адрес оконной процедуры

wcx.lpfnWndProc := @MainWndProc;

wcx.cbClsExtra := 0;

wcx.cbWndExtra := 0;

// handle to instance

wcx.hInstance := hInstance;

// загружаем стандандартную иконку

wcx.hIcon := LoadIcon(0, IDI_APPLICATION);

// загружаем стандартный курсор

wcx.hCursor := LoadCursor(0, IDC_ARROW);

// делаем светло-cерый фон

wcx.hbrBackground := COLOR_WINDOW;

// пока нет главного меню

wcx.lpszMenuName := nil;

// имя класса окна

wcx.lpszClassName := PChar(WinName);

 

// Регистрируем наш класс окна.

Result := RegisterClass(wcx) <> 0;

end;

 

function InitInstance: HWND;

begin

// Создаем главное окно.

Result := CreateWindow(

// имя класса окна

PChar(WinName),

// заголовок

'Small program',

// стандартный стиль окна

WS_OVERLAPPEDWINDOW,

// стандартные горизонтальное, вертикальное положение, ширина и высота

Integer(CW_USEDEFAULT),

Integer(CW_USEDEFAULT),

Integer(CW_USEDEFAULT),

Integer(CW_USEDEFAULT),

0,//нет родительского окна

0,//нет меню

hInstance, // handle to application instance

nil); // no window-creation data

end;

 

var

hwndMain: HWND;

AMessage: msg;

begin

if (not InitApplication) then

   MessageBox(0, 'Ошибка регистрации окна', nil, mb_Ok)

else

begin

   hwndMain := InitInstance;

   if (hwndMain = 0) then

     MessageBox(0, 'Ошибка создания окна', nil, mb_Ok)

   else

   begin

     // Показываем окно и посылаем сообщение WM_PAINT оконной процедуре

     ShowWindow(hwndMain, CmdShow);

     UpdateWindow(hwndMain);

     while (GetMessage(AMessage, 0, 0, 0)) do

     begin

       TranslateMessage(AMessage);

       DispatchMessage(AMessage);

     end;

   end;

end;

 

end.

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить