Grafiken zeichnen



  • Bei diesem Tutorial schauderts mir nur noch.
    Tut mir ja leid, aber da sind solche Klopper drin 😞
    Z.B. WM_PAINT-Zweig nur mit "return 0;"

    AUWEIA!

    Den Autor interessiert es auch absolut nicht sein Tutorial zu überarbeiten..



  • Jetzt muss ich schon mal dumm fragen, weil ich hab mit diesem Tutorial angefangen *bitte_nicht_hauen*. Was stimmt daran nicht:

    // ...
    case WM_PAINT:
        {
            PAINTSTRUCT ps;
            HDC hDC = BeginPaint(hWnd,&ps);
    
            // ...
    
            EndPaint(hWnd,&ps);
            return 0;
        } break;
    // ...
    

    thx & cya 🙂



  • Ich bezeihe mich hierauf:

    http://www.germandevnet.de/html/faq/cpp/winapi/einf.htm

    Schau mal was da steht beim WM_PAINT? 😕 😮 😡

    Fehler sind dazu da gemacht zu werden, aber sie selbst nach Hinweisen darauf
    nicht zu korrigieren ist schon schlimm. 😞



  • Da hast du Recht... das ist nicht so toll... ich verweise in Zukunft nur noch auf amazon.de -> Petzold ;).

    cya 🙂



  • hehe, der Endy ist halt CS süchtig geworden, da vergißt man schonmal seine Tutorials zu updaten. 😉



  • Original erstellt von TKool:
    **Bei diesem Tutorial schauderts mir nur noch.
    Tut mir ja leid, aber da sind solche Klopper drin 😞
    Z.B. WM_PAINT-Zweig nur mit "return 0;"

    AUWEIA!

    Den Autor interessiert es auch absolut nicht sein Tutorial zu überarbeiten..**

    Jo, und geile Rechtschreibfehler sind dabei. Aber mal ganz ehrlich: was ist an dem return(0) falsch? Muss da auch Begin- und EndPaint() hin, auch wenn nichts gezeichnet wird? Oder ist es falsch, weil die DefWindowProc nicht aufgerufen wird? 😕



  • Ohne BeginPaint und EndPaint landest du in einer Endlosschleife, weil der ungültige Bereich, der gezeichnet werden soll (Grund für den Aufruf von WM_PAINT) nie als gültig markiert wird!
    DefWindowProc macht soviel ich weiß auch einfach nur ein BeginPaint/EndPaint!



  • Sehe ich das dann richtig, dass Begin/EndPaint() nur dazu da ist, um den ungültigen Bereich wieder gültig zu machen? Wusste nämlich nie, wozu das da ist, und habe es immer nur brav geschrieben, ohne zu wissen warum.



  • So steht zumindest in der MSDN-Library! Es mach aber noch mehr, z.B. Clipping!

    The BeginPaint function automatically sets the clipping region of the device context to exclude any area outside the update region. The update region is set by the InvalidateRect or InvalidateRgn function and by the system after sizing, moving, creating, scrolling, or any other operation that affects the client area. If the update region is marked for erasing, BeginPaint sends a WM_ERASEBKGND message to the window.



  • Danke, flenders.


Anmelden zum Antworten