Работаю преимущественно в среде Lazarus, используя визуальные компоненты. Но решил попробовать создавать окна через WINAPI. Особых проблем не было. Но при запуске программы сначала выскакивает консоль и только потом создаётся окно. Можно ли избежать появления консоли? Заранее спасибо!
Lazarus-0.9.27-21081-fpc-2.2.5-20090803-win32
WINXP SP3
Листинг программы:
- Код: Выделить всё
Program Api;
{$MODE DELPHI}
uses
windows, messages;
var
window:TWndClassEx;
Mwindow: HWND;
Mmsg: MSG;
function WindowProc (wnd: HWND; msg: integer; wparam: WPARAM; lparam: LPARAM):LRESULT;STDCALL;
begin
case msg of
WM_Destroy:
begin
PostQuitMessage (0);
Result := 0;
Exit;
end;
else
Result := DefWindowProc(wnd,msg,wparam,lparam);
end;
end;
begin
window.cbSize := sizeof (window);
window.style := CS_HREDRAW or CS_VREDRAW;
window.lpfnWndProc := @WindowProc;
window.cbClsExtra := 0;
window.cbWndExtra := 0;
window.hInstance := HInstance;
window.hIcon := LoadIcon (0,IDI_APPLICATION);
window.hCursor := LoadCursor (0,IDC_ARROW);
window.hbrBackground:=Color_BtnFace+12;
window.lpszMenuName := nil;
window.lpszClassName := 'Main_Window';
RegisterClassEx (window);
Mwindow := CreateWindowEx(0,'Main_Window','First_WinAPI_Programm', WS_OVERLAPPEDWINDOW,100,100,300,300,0,0,Hinstance,nil);
SHOWWINDOW (Mwindow,SW_Show);
while GetMessage (Mmsg,0,0,0) do
begin
TranslateMessage (Mmsg);
DispatchMessage (Mmsg);
end;
end.