von Tabctrl auf Parent Dialog zugreifen



  • Hi Leute

    Ich habe mit Hilfe des Wrappers dytabctrl verschiedene Tabs erstellt
    nun möchet ich von einem Tab_Dialog auf die Variablen und Methoden des
    Parent-Dialogs zugreifen bzw auf die der anderen Tab-Dialoge.

    Ich heb schon einiges versucht jedoch nicht verstanden warum das nicht gehen soll

    zb

    class CVereinDlg : public CDialog
    m_Tabulator.InsertItem(new CDlgMit,"Mitglieder",IDD_DLGMIT);
    

    innerhal von cDlgMit.cpp habe ich versucht mit

    CVereinDlg->m_textvariable = Hallo;
    

    bzw.

    CVereinDlg->db_execute("Parameter");
    

    jedoch kommt dann : " Verwendung eines unbekannnten Typs : "CVereinDlg"

    Kann mir da jemand sagen wie das richtig geht?
    Vielen Dank für Eure Hilfe



  • CVereinDlg ist nur der Name der Klasse, keine Instanz. Du brauchst aber eine Instanz.

    Ist das der einzige Dialog der Anwendung? Und ist es eine dialogbasierte Anwendung?
    Dann kommst du mit AfxGetMainWnd und einem Cast zum Ziel. 🙂



  • Danke für die schnelle Antwort.

    Ich habe es folgenermaßen versucht:

    CVereinDlg* p_HauptDlg=(CVereinDlg*)AfxGetMainWnd();

    gibt aber diverse Fehlermeldungen ???
    Ich glaub ich tu mich gerade etwas schwer ?



  • linus schrieb:

    gibt aber diverse Fehlermeldungen ???
    Ich glaub ich tu mich gerade etwas schwer ?

    Jepp, tust du - vor allem damit, Fragen so zu stellen, dass man sie beantworten kann.
    Ohne Fehlermeldung kann ich dir keine Lösung sagen. 😉

    Ich rate mal: include vergessen?



  • JO. Sorry , hast Recht. 😡 Kopfschmerz 😡

    (Hab mir gerade eine Aspirin reingeschmissen),

    include in der Header-Datei fehlte 🤡 ,
    hatte gedacht ich hätte es schon gemacht

    Vielen Dank für Deine Hilfe

    Gruß Linus



  • Naja, eine Sache weniger, die Kopfweh macht. 😉
    Gute Besserung. 🙂



  • Danke , aber sorry wenn ich noch einmal da bin

    aber jetzt bkomme ich bei dem aufruf der Funktionen in parentDialog folgenden
    ausnahme Meldung

    Unbehandelte Ausnahme bei 0x100015e2 in verein.exe: 0xC0000005: Zugriffsverletzung-Leseposition 0x0000015c.

    😕
    Was nu ??



  • Hm, kanns sein, das das garkeinen Sinn macht ?
    Warum sollte die eine Darstellungsklasse auf eine andere Zugreifen müssen ?
    Wenn du es trotzdem machen musst, würde ich mir mal gedanken machen,
    ob du da nicht einen Designfehler hast.

    phlox



  • Ich habe eine Dialog-Anwendung
    In dieser sind einige Datenbankfunktionen enthalten
    Nun habe ich ebenfalls noch Tabctrl mit 4 Tabs in
    diesem Dialog . Diese enthalten ja ihrerseits eigene
    Dialoge. Nun möchte ich jedoch in diesem Tab-Dialog auf
    einen Button klicken , sodass dann gewisse Datenbank-
    funktionen aufgerufen werden.
    Dh.
    Ich muss auf die Funktionen von den Dialogen des Tabctrls
    auf die Funktionn des Parent Dialogs zugreifen können

    Ich hofe ich habe das so verständlich erklärt,
    aber mein Problem ist immer noch da?

    EDIT:
    Mein Debugger meldet mir als Wert der Variablen p_HauptDlg:

    p_HauptDlg=0x00000000 {CVereinDlg hWnd=???}
    

    da stimmt doch etwas nicht ?


Anmelden zum Antworten