Warum zeichnet der das nicht?



  • Hi.....
    Ich will jetzt einfach mal so zum Test ein einfaches Prog schreiben.
    In dem Dialog soll ein Rechteck gezeichnet werden, wenn man auf einen
    Button klickt. Aber der zeichnet mir da nichts.
    Hier der bisherige Code:

    CPaintDC dc ( this );
    CPen lPen ( PS_SOLID, 1, RGB ( 0, 0, 0 ) );
    dc.SelectObject ( &lPen );
    dc.Rectangle ( 20, 20, 120, 80 );
    

    Was ist hier denn falsch?
    Ich danke schonmal im vorraus für alle (Ge)Hilfen......

    MFG Aoeke

    [ Dieser Beitrag wurde am 10.04.2003 um 17:15 Uhr von Aoeke editiert. ]



  • Vergiss mein vorheriges mit OnPaint, du willst es ja auf Buttondruck...

    Also:
    Erstmal den guten schönen Device-Context des Fensters holen:

    CDC* pDC = GetDC();

    Das CPen Objekt kannst du dir sparen - Du willst das Rechteck ja sowieso nur schwarz zeichnen.
    Also:

    pDC->Rectangle ( 20, 20, 120, 80 );

    feddisch

    [ Dieser Beitrag wurde am 10.04.2003 um 17:43 Uhr von Cpp_Junky editiert. ]



  • OK, dann sehn wir mal weiter.......
    Funzt nämlich trotzdem nicht. Also ist immer noch kein Rechteck zu sehen.......

    MFG Aoeke



  • Danke erstma.
    Ich habe noch nen bissl rumprobiert und rausgefunden, dass
    ichs aber auch so machen kann:

    CClientDC dc ( this );
    dc.Rectangle ( 20, 20, 120, 80 );
    

    Aber warum klappt das nicht mit CPaintDC?

    MFG Aoeke



  • CPaintDC funktioniert, wie der Name eigentlich schon verdeutlichen dürfte, nur in der WM_PAINT-Nachricht.


Anmelden zum Antworten