Komme mit Pointern durcheinander



  • Hallo!

    Ich habe eine Klasse mit einer HDC Variable. Darin soll ein Fensterhandle gespeichert werden.

    hdc = GetDC(hwnd); // So gehts wenn man das direkt im Fenstercode macht
    

    Nun will ich das aber so machen:

    HWND       hwnd;
    Klasse *ptrKlasse = new Klasse(&hwnd);
    
    Klasse::Klasse(HWND *hwnd)
    {
    	hdc = GetDC(*hwnd);
    }
    

    Das liefert aber nicht das gewünschte Ergebis, ich zeichne so direkt auf den ganzen Windowsbildschirm und nicht mehr in das Fenster.
    Wie mache ich das richtig?



  • HWND ist ein pointertyp, du brauchst ihn also nur per value zu übergeben.

    HWND       hwnd; 
    Klasse *ptrKlasse = new Klasse(hwnd); 
    
    Klasse::Klasse(HWND hwnd) 
    { 
        hdc = GetDC(hwnd); 
    }
    

    ansonsten seh ich keinen fehler,ausser natürlich dass hwnd auf 0 zeigt, der fehler müsste woanders liegen



  • Alles klar geht einwandfrei 🙂


Log in to reply