Hallo @ all, stehe schon seit längerer Zeit vor einem Problem. Und zwar ich habe eine Dlg basierende MFC Anwendung. Vom MutterDlg öffne ich ein ChildDlg nicht-modal. Wie kann ich nun wenn ich z. B ein Button im MuDlg anklicke, einen Text in einer Textbox im ChildDlg ausgeben. Hab das ganze mal so probiert aber das will nicht recht: Öffnen des ChildDlg:
C++:
CDialog* pDlg; //<- global pDlg = new CDialog; pDlg->Create(IDD_CHILDDLG,this); pDlg->ShowWindow(SW_SHOW);
hi, beschreib doch mal genauer was da nicht funktioniert, bekommst einen fehler ? oder kompiliert er nicht erst ?
denke auch dran das du sachen die du mit "new" anlegst mit "delete" wieder selbst entfernen must. und wieso legst eine instanz einer basisklasse an? "pDlg = new CDialog;"
besser wäre wenn du deinem MainDlg ne member deines ChildDlg verpasst "CMeinChildDlg m_dlgChild;" damit sparste dir das new/delete
C++:
m_dlgChild.Create( IDDCHILDDLG, this ); m_dlgChild.ShowWindow( SW_SHOW );
// dann solte auch der zugriff auf die ChildDlg-members kein prob sein m_dlgChild.m_textbox = "Hallo";
besser wäre natürlich das alles mittels messages zu machen (SendMessage(...)/PostMessage(...))
OK, ich hab das mal probiert, aber da passiert das gleiche wie vorher. Ich öffne das ChildDlg und sobald ich auf den Button klicke um den Text "Hallo" auszugeben, stürzt das Programm ab (Microsoft Senden | Nicht Senden Error Reporting Message)
hab das noma versucht: pDlg->UpdateData(true);
->passiert das gleiche
Kannst du mir einen kurzen Beispielcode für SendMessage() senden.