Probleme mit Timer
-
Schon mal GetLastError nach SetTimer aufgreufen?
-
Ja, Ergebnis: ERROR_ACCESS_DENIED
Kann ich mir nix drunter vorstellen.
-
ist deine timer id korrekt ?
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/timers/usingtimers.asp
-
GetLastError() aber nur Aufrufen, wenn SetTimer fehlgeschlagen ist.
-
ist fehlgeschlagen! Es wird 0 zurückgegeben.
-
Und wenn du eine andere ID als 1 nimmst?
-
Nein. Kanns daran liegen, dass das Fenster selbst ein Child ist?
WNDCLASSEX wincl; wincl.hInstance = ((LPCREATESTRUCT) lParam) ->hInstance; wincl.lpszClassName = szTimeName; wincl.lpfnWndProc = TimeProcedure; wincl.style = CS_DBLCLKS; wincl.cbSize = sizeof (WNDCLASSEX); wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION); wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION); wincl.hCursor = LoadCursor (NULL, IDC_ARROW); wincl.lpszMenuName = NULL; wincl.cbClsExtra = 0; wincl.cbWndExtra = 0; wincl.hbrBackground = CreateSolidBrush (RGB (128, 128, 128)); RegisterClassEx (&wincl); lTime = CreateWindow (szTimeName, "", WS_CHILD, 400, 305, 390, 235, hWnd, NULL, ((LPCREATESTRUCT) lParam) ->hInstance, NULL);
-
Kannst du nicht den ganzen Quelltext geben so das wir es kompilieren können?
-
--- Aufgrund des Posts weiter unten gelöscht ---
-
Normalerweise postet man ein Minimalbeispiel das den Fehler zeigt.
Und das tolle daran ist, das man den Fehler dann auch meistens selbst findet, wenn man den Code so weit eingrenzen kann. Nimm ALLES raus was nichts mit dem Fehler zu tun hat.
-
hmm, Prob gelöst: das Programm musste das DefWndProc für WM_PAINT aufrufen.
Darauf muss man erst mal kommen. Danke an alle für die Hilfe.
-
Ok, das wars doch nicht. Jedenfalls nicht ganz. Anscheinend ergibt sich ein ähnliches Problem, wenn mehr als ein Child im Haupfenster angezeigt werden. Und zwar wird das Edit dann trotz wiederholter Anwendung von UpdateWindow nicht aktualisiert. Soll ich Code posten? Wird etwas umfangreich, da man nicht mehr viel entfernen kann.
-
Wenn du es nicht schaffst das Problem / Programm zu minimalisieren, weil dann evtl. der Fehler gar nicht mehr auftritt, dann solltest versuchen Stück für Stück deinen Code wieder reinzunehmen, um zu testen, was dieses Verhalten verursacht. Wenn alles nichts mehr hilft, kannst du ja einen so stark wie dir möglich vereinfachten Code posten (dürfte dann ja eigentlich auch nicht allzu schrecklich lang sein)
