Informations austausch zwischen Parent und child dialog
-
Hallo!
Bin seit 2 wochen auf der suche nach einer Lösung, aber konnte nichts finden.
Hoffe ihr könnt mir weiter helfen.
Habe ein parent dialog und da drinn mittels Tab Control 2 weitere child dialoge.
Ist es überhaupt möglich dass die child dialoge mit den parent dialog daten asutauschen können? wie z.B. CStrings oder ähnliches.Im Parentdialog wird eine Socket verbindung hergestellt und nun sollen die childs mit dieser hergestellten verbindung sachen senden und empfangen.
Danke im voraus,
MfG
Akca
-
Du musst halt den Childs alle Infos mitgeben die sie brauchen...
zB.:class CMyChildDialog : CD... { public: void SetParentInfos(CParentDialog *pParent, CParentSocket *pSocket); };Und im Parent musst Du halt nur die "SetParentInfos" Methode der Child-Dialoge aufrufen...
Oder wie hast Du es gemeint?
-
An sowas hab ich schon gedacht, aber wie kann ich einfach da drauf zugreifen
MyTabCtrl:
MyTabCtrl::MyTabCtrl() { m_DialogID[0] =IDD_DIALOG1; m_DialogID[1] =IDD_DIALOG2; m_Dialog[0] = new DIALOG1(); m_Dialog[1] = new DIALOG2(); m_anzahl_der_tabs = 2; } void MyTabCtrl::InitDialogs() { m_Dialog[0]->Create(m_DialogID[0],GetParent()); m_Dialog[1]->Create(m_DialogID[1],GetParent()); }ParentDlg
MyTabCtrl m_tbCtrl; .. BOOL CParentDlg::OnInitDialog() { ... m_tbCtrl.InitDialogs(); m_tbCtrl.InsertItem(0,"eins"); m_tbCtrl.InsertItem(1,"zwei"); m_tbCtrl.ActivateTabDialogs(); ... }zugriffs versuch.
m_tbCtrl.m_Dialog[0]->SetParentInfos(...);So wirds nicht fuktionieren da er alle methoden von der klasse CDialog auflistet und nicht meine
-
Du musst natürlich schon die "richtige" Klasse verwenden... also entweder Casten (undschön) oder eine spezielle "Zugriffsfunktion definieren, über die Du dann Zugriff auf den Passenden Dialog erhälst:
DIALOG1* MyTabCtrl::Get_DIALOG1() { // Hier drin ist IMHO das casten nicht so schlimm, da die Klasse ja auch innerhalb dieser Klasse erzeugt wird... return (DIALOG1*) m_Dialog[0]; } DIALOG2* MyTabCtrl::Get_DIALOG2() { // Hier drin ist IMHO das casten nicht so schlimm, da die Klasse ja auch innerhalb dieser Klasse erzeugt wird... return (DIALOG2*) m_Dialog[1]; }
-
Danke dir 1000 mal , es funktioniert!
