Zugriff auf eine DialogKomponente von neuer Klasse



  • Hallo,

    der Titel ist sicherlich etwas unglücklich gewählt, aber mir fiel gerade nichts besseres ein!

    Mein Problem ist folgendes:

    Ich habe eine DialogKlasse, in der ich einige Komponenten habe (wie z.B. ein EditFeld)! Jetzt habe ich eine neue allgemeine (generic) Klasse angelegt, in der einige Berechnungen durchgeführt werden sollen und das Endergebnis in das EditFeld des DialogFelds eingetragen werden soll.

    Da ich leider noch relativ neu in der GUI-Programmierung in Visual C++ bin, habe ich leider keine Ahnung, wie ich vorgehen soll.

    Ich habe zwei Versuche gestartet, leider erfolglos!

    Versuch Nr1:

    #include "stdafx.h"
    #include "kundenbewertung.h"
    #include "kundenbewertungdlg.h"
    
    void CRating::fillTable() { //eine Methode der externen Klasse
    	CKundenbewertungDlg dlg;
            dlg.m_edit.Insert(0,"TEST");
       }
    

    Versuch Nr2:

    void CRating::fillTable() { 
           CKundenbewertungDlg* parent = (CKundenbewertungDlg*)GetParent();
           parent->m_edit.Insert(0,"TEST");
         }
    

    Versuch 2 leider mit folgender Fehlermeldung:

    error C2660: 'GetParent' : function does not take 0 parameters

    Hoffentlich kann mir von euch jemand weiterhelfen!

    Vielleicht noch als Zusatz: Die Klasse wurde von keiner anderen Klasse abgeleitet! Vielleicht sollte ich sie ja von der DialogKlasse ableiten, falls ja
    kann man die vielleicht noch nachträglich ableiten?

    Vielen Dank im Voraus und Gute Nacht! 🙂



  • hmm naja... hast du nen zeiger auf dein Dialog??

    wenn ja dann kannst du mit:

    CEdit *pEditfeld = (CEdit*) pDlg->GetDlgItem(ID_EDIT);
    pEditfeld->setWindowText("HALLO");
    

    was in das feld schreiben!!

    den zeiger auf das Dilag bekommst glaub so:

    CDialog *pDlg= GetWindow(IDD_DLG);
    

Log in to reply