Zugriff auf Dialog von allgemeiner Klasse
-
Hi!
Ich bin noch relativ neu in der MFC Programmierung und habe mir jetzt ein Dialogfenster mit nem Edit-Feld gebaut.
Um das ganze übersichtlicher zu machen habe ich eine allgemeine Klasse steuerung angelegt (von CDeskBotDlg abgeleitet), die auf bestimmte Ereignisse reagieren soll. z.B.void CDeskBotDlg::OnChangeEdit1() { Ausgabe->Reaktion("Hallo"); } void steuerung::Reaktion(CString text) { wnd->SetDlgItemText(IDC_Text, text); }wobei wnd ein Zeiger auf CDeskBotDlg ist.
Aber wenn ich die allgemeinen Funktionen der CDeskBotDlg Klasse wie OnClose() von der SteuerungsKlasse aufrufen will, passiert gar nichts. Ebenso wenn ich auf member variablen zugreifen will, oder UpdateData mache.Natürlich könnte ich meine ganzen Raktionsfunktionen auch in die CDeskbotDlg Klasse packen, dann hätte ich aber nicht mehr die schöne Funktionstrennung der OOP.
Vielen Dank schon mal
<°))><
-
OnClose befindet sich in der Klasse
CDialog
Deine DlgKlasse ist von dieser abgeleitetWillst du OnClose aufrufen musst du sie in der DlgKlasse überschreiben. (Macht dir der Assi)
-
In der DialogKlasse gibt's ja schon eine OnClose Funktion.
Aber wenn ich die von meiner steuerungsklasse aufrufe, die ja von der DlgKlasse abgeleitet ist und damit auch von CDialog macht der einfach gar nichts.
Ebenso wenn ich sage:void steuerung::Reaktion(CString text){ m_text = text; //ändere MemberVar des Dialogs UpdataData(FALSE); }Dann ändert sich noch nicht mal die MemberVar m_text, die ja direkt auf nen Label zeigt.

Meine Klasse sieht so aus:class steuerung : public CDeskBotDlg { public: void ausgabe(CString text); void Reaktion(CString text=""); void Begruessung(); steuerung(CWnd* pParam); steuerung(); virtual ~steuerung(); private: int status; CWnd* wnd; };Also ich blick da nicht durch. Das liegt wahrscheinlich alles daran, dass der keinen richtigen Zugang zum DialogFenster hat aus meiner Klasse heraus

Vielleicht sollte ich doch alles in die DialogKlasse packen? Da macht der das nämlich alles brav. Oder ich steig auf WinAPI um.Danke schon mal
<°))><
-
Hey, das muss doch schon mal jemand gemacht haben!
Ich will doch bloß aus einer eigenen Klasse heraus auf die Funktionen des Dialogfensters zugreifen mit den schönen MFC Befehlen wie UpdateData und so.
Bitte helft mir
