Для пеpехода к следующей ошибке нажмите кнопку ДАЛЕЕ.
program winmin;
uses
windows,
messages;
var wc : TWndClassEx;
MainWnd : HW Mesg : TMsg;
function WindowProc(wnd:HWND; Msg : Integer; Wparam:Wparam;
Lparam:Lparam):Lresult;
stdcall;
Begincase msg of
wm_destroy :
Begin
postquitmessage(0); exit;
Result:=0;
End;
else Result:=DefWindowProc(wnd,msg,wparam,lparam);
end;
End;
var xPos,yPos,nWidth,nHeight : Integer;
begin
wc.cbSize:=sizeof(wc);
wc.style:=cs_hredraw or cs_vredraw;
wc.lpfnWndProc:=@WindowProc;
wc.cbClsExtra:=0;
wc.cbWndExtra:=0;
wc.hInstance:=HInstance;
wc.hIcon:=LoadIcon(0,idi_application);
wc.hCursor:=LoadCursor(0,idc_arrow);
wc.hbrBackground:=COLOR_BTNFACE+1;
wc.lpszMenuName:=nil;
wc.lpszClassName:='WinMin : Main';
RegisterClassEx(wc);
xPos:=100;
yPos:=150;
nWidth:=400;
nHeight:=250;
MainWnd:=CreateWindowEx(
0,
'WinMin : Main',
'Win Min',
ws_overlappedwindow,
xPos,
yPos,
nWidth,
nHeight,
0,
0,
Hinstance,
nil
);
ShowWindow(Mai! nWnd,CmdShow);
While GetMessage(Mesg,0,0,0) dobegin
TranslateMessage(Mesg);
DispatchMessage(Mesg);
end;
end.
Пример программы на Windows, написанной с помощью языка Object Pascal в среде Delphi. Программа создает окно с заголовком "Win Min" и именем класса "WinMin : Main".
Расшифровка кода:
Клауза uses импортирует необходимые модули: Windows и Messages.
Переменная wc типа TWndClassEx объявляется для хранения свойств окна класса.
Функция WindowProc объявляется как стандартная библиотечная функция (stdcall) и используется для обработки сообщений окна.
В теле функции WindowProc с помощью оператора case проверяется тип отправляемого сообщения и обрабатывается соответствующим образом. В этом случае обрабатывается только сообщение WM_DESTROY, которое отправляется при уничтожении окна.
Процедура RegisterClassEx регистрирует класс окна в операционной системе.
Функция CreateWindowEx создает новое окно с указанными свойствами:
0 как стиль окна
'WinMin : Main' как имя класса окна
'Win Min' как заголовок окна
ws_overlappedwindow как стиль окна
xPos, yPos, nWidth, nHeight как позиция и размер окна
0 как handle родительского окна
0 как флаги создания окна
HInstance как handle экземпляра
nil как handle меню окна
Процедура ShowWindow отображает окно.
Основной цикл программы использует функцию GetMessage для получения сообщений из очереди, функцию TranslateMessage для перевода сообщений и функцию DispatchMessage для их обработки.
Примечания:
В Delphi функция CreateWindowEx используется для создания окна с расширенными возможностями. Первый параметр - стиль окна, который может быть комбинацией флагов.
Процедура RegisterClassEx регистрирует класс окна в операционной системе, но это не необходимо в этом примере, поскольку окно создается с помощью функции CreateWindowEx.
Функция PostQuitMessage используется для отправки сообщения о завершении программы, которое будет прекратить выполнение программы.
В целом, этот код демонстрирует, как создавать простой программу на Windows с помощью Delphi.
В статье описывается использование функции CreateWindow(Ex) в программировании под Windows для создания оконного проигрева, включая параметры и пример кода на языке Delphi.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.