Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как использовать CreateWindow(Ex)

Delphi , Синтаксис , API реализация

Как использовать CreateWindow(Ex)

Автор: lel

Для пе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;
Begin
case 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) do
begin
 TranslateMessage(Mesg);
 DispatchMessage(Mesg);
end;

end.

Пример программы на Windows, написанной с помощью языка Object Pascal в среде Delphi. Программа создает окно с заголовком "Win Min" и именем класса "WinMin : Main".

Расшифровка кода:

  1. Клауза uses импортирует необходимые модули: Windows и Messages.
  2. Переменная wc типа TWndClassEx объявляется для хранения свойств окна класса.
  3. Функция WindowProc объявляется как стандартная библиотечная функция (stdcall) и используется для обработки сообщений окна.
  4. В теле функции WindowProc с помощью оператора case проверяется тип отправляемого сообщения и обрабатывается соответствующим образом. В этом случае обрабатывается только сообщение WM_DESTROY, которое отправляется при уничтожении окна.
  5. Процедура RegisterClassEx регистрирует класс окна в операционной системе.
  6. Функция CreateWindowEx создает новое окно с указанными свойствами:
    • 0 как стиль окна
    • 'WinMin : Main' как имя класса окна
    • 'Win Min' как заголовок окна
    • ws_overlappedwindow как стиль окна
    • xPos, yPos, nWidth, nHeight как позиция и размер окна
    • 0 как handle родительского окна
    • 0 как флаги создания окна
    • HInstance как handle экземпляра
    • nil как handle меню окна
  7. Процедура ShowWindow отображает окно.
  8. Основной цикл программы использует функцию 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




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: API реализация ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 16:09:02/0.0032188892364502/0