höchst seltsame Fehlermeldung!!!



  • Hilfe, mein Programm bemängelt folgenes, was ich überhaupt nicht verstehe:

    #inlclude "stdafx.h"  //hier steckt #include <afxwin.h> drin
    ...
    void CMyView::OnPaint()
    {
      CPaintDC PaintDC(this);
      PaintDC.SetDCPenColor(RGB(0,0,0)); /*<--"SetDCPenColor is not a member of
                                               CPaintDC*/
    }
    

    Ich benutze Win2k, falls das weiterhilft.
    Danke schon mal im voraus.



  • Ist heute 1. April?

    Also wenn ich einen Punkt hinter PaintDC mache, klappt eine Liste auf, wo drinsteht, was man hinter dem Punkt alles schreiben kann.
    Sowas wie SetDCPenColor gibts da auch gar nicht, also wieso sollte er das nicht anmeckern?

    Empfehlung: Tutorial über Zeichnen auf DC !

    [ Dieser Beitrag wurde am 18.11.2002 um 16:48 Uhr von RenéG editiert. ]



  • Gut René, damit du mich nicht falsch verstehst, das ganze nochmal.
    "SetDCPenColor(...)" ist eine public-Member-Funktion der Klasse CDC. CPaintDC ist von CDC auf public-Art abgeleitet:

    class CDC : public CObject
    {
    ...
    public:
    #if (_WIN32_WINNT >= 0x0500)
    COLORREF SetDCPenColor(COLORREF crColor);
    #endif
    ...
    };
    
    class CPaintDC : public CDC {...};
    

    Deswegen müsste der Codeabschnitt (der erste Beitrag) fehlerfrei funktionieren.
    Liegt der Fehler vielleicht an der Direktive #if (_WIN32_WINNT >= 0x0500?



  • Liegt der Fehler vielleicht an der Direktive #if (_WIN32_WINNT >= 0x0500?

    Teste das doch einfach mal:

    #if (_WIN32_WINNT >= 0x0500)
    AfxMessageBox("SetDCPenColor(...) ist definiert!!");
    #endif
    

    Ansonsten weis ich auch nicht, woran das liegen könnte 😞



  • Also ich weiß ja nicht, wie das bei euch ist, aber bei mir gibts definitiv KEIN SetDCPenColor in der CDC Klasse, und ich hab auch schon massig Code mit CDC gesehen (und ein bisschen geschrieben=) ) und da kam nie diese Funktion drin vor. Allerdings gibt es sie als

    COLORREF SetDCPenColor(HDC hdc, COLORREF crColor);



  • an "DerGhost":
    vielleicht liegt es daran, dass ich VC++ 7.0 benutze, also auch die neueste MFC.
    Wenn ich SetDCPenColor aus der wingdi.h benutze, dann spuckt er dieselbe Fehlermeldung aus.
    Ich hab das Problem jetzt anders gelöst:

    {  
      ...
      CPen Pen(PS_SOLID, 1, RGB(255, 0, 0));
      PaintDC.SelectObject(Pen);
      ...
    }
    

Anmelden zum Antworten