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


  • Mod

    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


Anmelden zum Antworten