Warum wird das gemacht?
-
LRESULT CALLBACK WndProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) { HDC hdc; PAINTSTRUCT ps; switch(uMsg) { case WM_PAINT: { hdc = BeginPaint(hwnd, &ps); EndPaint(hwnd, &ps); break; } default: return DefaultWindowProc(hwnd, uMsg, wParam, lParam); }; return 0; }Hier ist der Code um den es geht. Ist ein wenig gekürzt. Dieser ist aus dem DirectX-Tutorial von Microsoft.
Frage ist: Warum wird der hdc aus BeginPaint in einer Variable gespeichert, obwohl er nicht weiter verarbeitet wird? Und warum wird überhaupt gezeichnet? Das macht doch DirectX oder nicht?
lg
-
1. Das speichern der variable könnte unterbleiben.
2. Technisch gesehen kann der ganze WM_PAINT Handler weg.
3. Wird hier nichts gezeichnet sondern, das Fenster das erzeugt wurde validiert damit Windows keine Endlosschleife für den Fensterhandler aufruft.
-
Danke Martin.
lg