Child und Parent Dialog
-
kennt eine gute Anleitung, Tutorial, HowTo oder was auch immer wo das mit dem casten für Idioten beschrieben ist?
Ich schaffe es nicht bei 2 Dialogen von dem child Dialog auf eine Methode in dem parent Dialog Zugriff zu bekommen.Parent Dialog (CMyDialog1) ist nicht mein Main Window. (ich glaub es ist wichtig zu wissen)
Parent Dialog
class CMyDialog1 : public CDialog { ... protected: CEdit m_ctrlName; } void CMyDialog1::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_EDIT_NAME, m_ctrlName); } BEGIN_MESSAGE_MAP(CMyDialog1, CDialog) ON_BN_CLICKED(IDC_OPEN_DIALOG2, OnBnClickedOpenDialog2) END_MESSAGE_MAP() ... void CMyDialog1::SetStatic(CString myName) { m_ctrlName.SetWindowText(myName); } void CMyDialog1::OnBnClickedOpenDialog2() { CMyDialog2 editDlgd; editDlgd.DoModal(); }child Dialog
BEGIN_MESSAGE_MAP(CMyDialog2, CDialog) ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedButton1) END_MESSAGE_MAP() ... void CMyDialog2::OnBnClickedButton1() { // hier soll dann SetStatic(CString myName) aus dem CMyDialog1 aufgerufen werden }wenn ich irgendwo in dem CMyDialog1 SetStatic("egal was auch immer"), dann wird es auch in dem CEdit der String "egal was auch immer" angezeigt.
Auf dem CMyDialog1 ist noch ein Button IDC_OPEN_DIALOG2, mit dem ich ein zweites Dialog Fenster öffne und wenn ich dort auf einen Button klicke soll ein String an SetStatic(CString myName) ausgeführt werden.
Ich hoffe ich hab es halbweg verständlich beschrieben.
Viel, viel, viel, viel für die Antworten.
-
Übergib im Konstruktor von Dialog2 eine Referenz auf Dialog1!
Obwohl ich dieses Design etwas fragwürdig finde.
-
kennst du einen beispiel dafür, am besten mit 2 dialogen?
-
Beispiel... meine Güte einfach eine Referenz an den Konstruktor übergeben. Muss man den alles mit einem Beispiel belegen?
Man lernt nicht nur durch CPP (Copy & Paste Programming)...
SCNR