Créer une fenêtre en utilisant que les API

//Mettre le code dans le fichier projet (*.dpr).

program Project1;
uses
windows, messages;

procedure MainPaint(hWindow: HWND; pt: TPaintStruct);
begin
SetBkMode(pt.hdc, TRANSPARENT);
TextOut(pt.hdc, 10, 10, 'Hello, World!', 13);
end;

procedure MainDestroy(hWindow: HWND);
begin
PostQuitMessage(0);
end;

// Procedure fenętre principale

function MainWndProc(hWindow: HWND; Msg: UINT; WParam: WPARAM;
LParam: LPARAM): LRESULT; stdcall; export;
var
ps: TPaintStruct;
begin
Result := 0;
case Msg of
WM_PAINT: begin
BeginPaint(hWindow, ps);
MainPaint(hWindow, ps);
EndPaint(hWindow, ps);
end;
WM_DESTROY: MainDestroy(hWindow);
else begin
result := DefWindowProc(hWindow, Msg, wParam, lParam);
exit;
end;
end; // case
end;

//Procedure principale

var
wc: TWndClass;
hWindow: HWND;
Msg: TMsg;
begin
wc.lpszClassName := 'GenericAppClass';
wc.lpfnWndProc := @MainWndProc;
wc.style := CS_VREDRAW or CS_HREDRAW;
wc.hInstance := hInstance;
wc.hIcon := LoadIcon(0, IDI_APPLICATION);
wc.hCursor := LoadCursor(0, IDC_ARROW);
wc.hbrBackground := (COLOR_WINDOW + 1);
wc.lpszMenuName := nil;
wc.cbClsExtra := 0;
wc.cbWndExtra := 0;
RegisterClass(wc);
hWindow := CreateWindowEx(WS_EX_CONTROLPARENT or WS_EX_WINDOWEDGE,
'GenericAppClass',
'API',
WS_VISIBLE or WS_CLIPSIBLINGS or
WS_CLIPCHILDREN or WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0,
400, 300,
0,
0,
hInstance,
nil);

ShowWindow(hWindow, CmdShow);
UpDateWindow(hWindow);
// Message Loop
while GetMessage(Msg, 0, 0, 0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
Halt(Msg.wParam);
end.
Ajouter un commentaire
Pseudo
Adresse email
Site internet (optionnel)
Votre commentaire
Fiche de l'article
Mise a jour16/11/2001
VisualisationVu 811 fois
PublicInternaute zz
CategorieDelphi - Trucs et astuces - Objet
Auteur de l'article
SwissDelphiCenter SwissDelphiCenter
connecté le 02/11/2011
329 articles dans la section
Contacter l'auteur