Skid
Erfahrenes Mitglied
Hallo zusammen,
ich habe eine Verständnisfrage, zu der WM_CLOSE-Message. Und zwar, bekomme ich ja diese Nachricht, wenn das Fenster geschlossen werden soll beispielsweise durch das drücken des "X" in der rechten oberen Ecke. In meiner Anwendung prüfe ich in der WndProc-Funktion speziell nach dieser Nachricht und sende eine Quit-Message mit ...
Anschließend füge ich ein "break;" für die Switch-Anweisung an, damit aus dieser herausgesprungen wird. Am Ende der Funktion wird folgendes zurückgegeben:
Soweit so gut. Wenn ich jetzt allerdings das Programm beende und demnach den Device Context lösen möchte, bekomme ich den Error 1425 und natürlich gleichsam für das zerstören des Fensters den Error 1400. Soll heißen:
Wenn ich allerdings, durch das Drücken der ESC-Taste eine PostQuitMessage versende, bekomme ich diesen Fehler nicht. Wenn ich jetzt in der WndProc die Break-Anweidung durch return 0 ersetze, bekomme ich weder beim drücken der ESC-Taste, noch beim drücken des "X" eine Fehlermeldung.
Woran liegt das?
Zuvor hatte ich OpenGL und die Windows-Funktionen in zwei separaten Klassen getrennt und da ging es auch, jetzt allerdings durch das zusammenlegen nicht mehr. Ich muss jedoch dazu sagen, dass zuvor dieser Return-Wert "DefWindowProc" in der default-Marke der Switch-Anweisung zurückgegeben wurde.
Vielen Dank,
SKiD.
ich habe eine Verständnisfrage, zu der WM_CLOSE-Message. Und zwar, bekomme ich ja diese Nachricht, wenn das Fenster geschlossen werden soll beispielsweise durch das drücken des "X" in der rechten oberen Ecke. In meiner Anwendung prüfe ich in der WndProc-Funktion speziell nach dieser Nachricht und sende eine Quit-Message mit ...
Code:
PostQuitMessage(0);
Anschließend füge ich ein "break;" für die Switch-Anweisung an, damit aus dieser herausgesprungen wird. Am Ende der Funktion wird folgendes zurückgegeben:
Code:
return DefWindowProc(pHWND, pMsg, pWParam, pLParam);
Soweit so gut. Wenn ich jetzt allerdings das Programm beende und demnach den Device Context lösen möchte, bekomme ich den Error 1425 und natürlich gleichsam für das zerstören des Fensters den Error 1400. Soll heißen:
Code:
1425 = Invalid device context (DC) handle.
1400 = Invalid window handle.
Wenn ich allerdings, durch das Drücken der ESC-Taste eine PostQuitMessage versende, bekomme ich diesen Fehler nicht. Wenn ich jetzt in der WndProc die Break-Anweidung durch return 0 ersetze, bekomme ich weder beim drücken der ESC-Taste, noch beim drücken des "X" eine Fehlermeldung.
Woran liegt das?
Zuvor hatte ich OpenGL und die Windows-Funktionen in zwei separaten Klassen getrennt und da ging es auch, jetzt allerdings durch das zusammenlegen nicht mehr. Ich muss jedoch dazu sagen, dass zuvor dieser Return-Wert "DefWindowProc" in der default-Marke der Switch-Anweisung zurückgegeben wurde.
Vielen Dank,
SKiD.