SetTimer problem
-
Hallöchen,
ich möchte einen Screensaver proccn. Ich zeig euch am besten mal den code als erstes:
long WINAPI ScreenSaverProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC dc; dc = GetDC(hWnd); switch(message) { case WM_CREATE: m_saver = new Saver(hWnd); //Saver klasse zur Verarbeitung SetTimer(hWnd, // handle to main window 5, // timer identifier 1000, // 10-second interval NULL); // no timer callback break; case WM_TIMER: WRITE_CONSOLE_ONLY(LT_INFO,100,__FUNCTION__ << "\t update !!!" <<std::endl,true) m_saver->update(); m_saver->render(); return 0; case WM_DESTROY: DEL_CONSOLE_BLOCK WRITE_CONSOLE_ONLY(LT_INFO,100,__FUNCTION__ << "\t EXIT !!!" <<std::endl,true) SAFE_DELETE(m_saver); KillTimer(hWnd,5); ReleaseDC(hWnd,dc); break; } return DefScreenSaverProc(hWnd,message,wParam,lParam); }so schauts aus. JEdenfalls hab ich ein problem, der timer geht nie in die WM_TIMER message.
Sondern das Programm beendet sich sogleich wieder.
Dafür hab ich mir mal diese Konsolenmakros geschrieben.Na ich will nicht groß um den heißen Brei reden. Ich hab mir die Doku zu Settimer 100mal durchgelesen und finde einfach den Fehler nicht, weshalb er nicht das timer event auslöst, vll überseh ich da einfach was.
Achso, noch dazu bekommt er beim Beenden des Programms einen Speicherfehler, "der Vorgang read konnte nicht.... usw".
Bin über jede Anegung dankbar, da die Sufu iwie nix hergibt.
-
Wahrscheinlich ist deine WinMain-Funktion fehlerhaft.
Hast du denn dort die Message-Abfrage-Schleife drin?Und hast du schon den Debugger benutzt???
-
hoi, naja die win main wird ja quasi von der "scrnsave.lib" provided.
Weshalb man die nicht mitschreiben muss, jedenfalls hat sich das problem irgendwie von selbst gelst und ich muss gestehen, das ich nich weiß wieso und warum.
Vll weil ich etwas unkonzentriert bin.
Jetzt bleibt bloß noch ein Speicherproblem beim Beenden, "der vorgang read konnte nicht ausgeführt werden..."
ICh weiß nicht ob ich mit der vermutung richtig liege, aber ich schätze mal da sind noch messages im queue ?!?!
ich werd weiter forschen