aus unterdialogen variablen aus hauptdialog abfragen



  • hallo,
    frage:
    ist es möglich dass ein unterdialog variablen eines hauptdialogs ausliest?
    bsp.
    ich hab im hauptdialog einen thread laufen, der liest daten einer hardware ein, in verschiedenen unterdialogen möchte ich jetzt anzeigen ob ein signal vorhanden ist oder eben nicht.

    jetzt könnte ich es ja einfach so machen
    unterdialog1.signal_ok = 1;

    müsste dann aber bei dialog 2
    unterdialog2.signal_ok = 1;

    bei dialog 3:
    unterdialog3.signal_ok = 1;

    usw. eingeben,
    würde also lieber umgekehrt aus den unterdialogen variablen des Hauptdialogs abfragen.

    weiß jetzt nicht ob mein problem einigermasen verständlich war?!? 😕
    danke schon mal
    Al



  • Übergib doch den Unterdialogen einen Pointer auf
    den Hauptdialog, diese können dann via Get-Methoden
    die Daten aktualisieren.

    Devil



  • danke, hört sich gut an,
    jetzt kommt sicher ne saudumme frage 😕
    ich öffne die unterdialoge mit

    m_unterdialog1.DoModal();
    

    wobei m_unterdialog eine variable vom typ der unterdialogklasse ist,

    wie übergeb ich nun einen pointer auf den hauptdialog und wie bekomme ich dann variablen werte mit get?!?
    danke
    Al



  • z.B:

    Im neuen Dialog

    CThreaddefaultDlg* m_pOwner;
    void SetOwner(CThreaddefaultDlg* pOwner) { m_pOwner = pOwner; };

    Im alten dann mit

    m_unterdialog1.SetOwner(this);



  • was macht denn "GetParent()" ????



  • hab ich mich auch schon gefragt 😃
    liefert irgendwie den zeiger, weiß aber nicht wie man das ding anwenden muss,
    ich glaube man mus dazu auch im child dialog die header datei der parent klasse einbinden,
    aber genaues weiss ich nicht
    Al



  • so, habs hingekriegt,

    ich beantwortet nun mal meine frage noch mal selbst so das es auch idotin (wie ich eben) kapieren können.

    aus meinem parent dialog öffne ich einen modalen dialog (child).
    die klasse des parent dialogs heißt CparentDlg, die klasse des child dialog heißt CChildDlg.

    wichtig, im child dialog muss das headerfile des parent dialog eingebunden sein!

    #include "parent.h"
    

    im parent dialog hab ich eine membervariable als public definiert (m_Zahl).
    den wert von m_Zahl möchte ich jetzt gerne vom child dialog auslesen.

    und das geht dann ganz einfach so:

    m_child_zahl = ((CParentDlg*)GetParent())->m_Zahl;
    

    wobei m_child_zahl eine membervariable des childdialogs ist.

    so funktioniert,
    wenn mir jemand aber noch einen link hätte wo GetParent() noch ausführlich erklärt wird, wäre klasse, 😃
    see ya
    Al 🕶



  • Hallo,

    youCanCallMeAl schrieb:

    wenn mir jemand aber noch einen link hätte wo GetParent() noch ausführlich erklärt wird, wäre klasse

    was ist in der Erklärung, die man in der MSDN-Lib findet:

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmfc98/html/_mfc_cwnd.3a3a.getparent.asp

    nicht verständlich?

    MfG


Anmelden zum Antworten