GetDlgItem



  • Hallo!

    ich habe gerade mit c++ angefangen und brauche eine kleine Erklärung:

    was genau bedeutet die Funktion GetDlgItem() ??

    Ich habe in einem Tutorial folgendes geschrieben

    GetDlgItem(IDC_)->EnableWindow(TRUE);

    Was passiert ist, weiß ich aber die Erklärung für diese Funktion hat mich nicht ganz erreicht....
    Nur das GetDlgitem irgendwie ein Steuerelement "aufruft"



  • Hi
    Also
    die Funktion GetDlgItem() sucht in deinem Dialog(Fenster) nach einem Steuerelement und gibt ein Objekt vom Typ CWnd zurück (genauer gesagt einen Zeiger auf das Objekt).
    Also MFC ist einfach die Windows Api in nützliche Objekte gekapselt.
    (Ich konnts mir nicht verkneifen :p)
    Und ein Objekt des Types CWnd hat eine Funktion, die das Steuerelement entweder deaktiviert oder aktiviert (EnableWindow).
    Über den zurückgegebenen Zeiger der Funktion greifst du (über -> ) auf die Methode(Funktion) der CWnd Klasse zu und rufst diese auf.

    Grüße Rapha



  • Hallo.

    Zusätzlich könnte man noch erwähnen, dass die obige Schreibweise eine Kurzform für

    CWnd* pMyControl = GetDlgItem(IDC_MY_CONTROL);
    pMyControl->EnableWindow(true);
    

    Vorteil der kurzen Schreibweise ist, dass man nach der Verwendung keine Pointer (=Zeiger) löschen muss. Für das vonmir angeführte Beispiel müsste man den Zeiger pMyControl noch löschen, damit kein Speicherleck auftritt:

    delete pMyControl;
    

    MfG,
    Happosai



  • nach dem dritten lesen hab ich sogar die 2. Antwort verstanden...(glaub ich 😉 )

    Danke auf jeden Fall!!
    Das geht ja wirklich flott hier!


Anmelden zum Antworten