Почему-то не работает таймер хотя все верно создано. Просто когда уберешь из кода обработку wm_paint, то работает, а мне надо чтобы с wm_paint работало. Под скажите, пожалуйста, что не так? Заранее спасибо. Вот код для примера:
Program Api;
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_paint:;
wm_create:settimer(wnd,7,1000,nil);
wm_timer:begin
case wparam of
7:showwindow(wnd,sw_hide);
end;
end;
WM_Destroy:
begin
killtimer(wnd,7);
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_Program',WS_OVERLAPPEDWIND OW,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.