.| Autor | Beitrag |
|---|---|
|
000 21.11.2005, 15:59 felekchris |
hallo, ich habe schon wieder ein kleines Problem, diesmal mit MFC. In meiner Anwendung habe ich ein Hauptdialogdfenster (A), welches wiederrum ein anderes Dialogfenster beinhaltet. sagen wir (B) (wird über Menu aufgerufen). Dialog (B) int dialogClasse::getEinsatz(){ return str; void dialogClasse::OnSetEinsatz() } Dialog (A) dialogClass dlg; an dieser Stelle ist die Variable "result" nicht mit dem eingegeben Wert belegt. Vielen Dank -- |
|
Profil || Suche |
|
001 21.11.2005, 16:40 Kriz |
Hm, ich sehe schon... Da mangelt's an allem ;) Also fangen wir erstmal hier an: Es gibt einerseits die Komponenten (CEdit, CStatic, CWasweißich) und andererseits die Variablen, die die Werte der Komponenten verwalten. Beispielsweise bei einem CEdit Textfeld gibt es einerseits eine Variable für das CEDit selber (z.B. m_edit) und eine Variable, die den String des Textfeldes beinhaltet (z.B. m_strEdit). Wenn du nun m_strEdit = "Trullalla"; schreibst und willst, daß dieser neue String im Textfeld erscheint, mußt du z.B. schreiben: So, nun zum zweiten Teil: Ich glaube, du hast die Prinzipien der objektorientierten Programmierung mit C++ nicht so ganz gerafft. Das zeigt mir nämlich dein Code bzw. deine Versuche, Daten zwischen Dialogen auszutauschen. Deine Klasse B (also der Dialog, der vom Dialog A aufgerufen wird), kann auf zwei Arten seine Daten "verfügbar" machen. Erstens: Alle Membervariablen von Dialog B sind public deklariert oder zweitens: Für jede Membervariable von Dialog B gibt es eine public Methode zum Setzen und Holen des jeweiligen Variablenwerts. Erstere Methode ist zwar einfach und schön, widerspricht aber dem objektorientierten Dogma der Objektkapselung. Wenn alle Membervariablen public sind, kann Dialog A bequem über das Dialog B Objekt auf dessen Variablen zugreifen: Zur allgemeinen Sache rate ich dir: Erstmal C++ richtig verstehen, dann Windows programmieren. Zum Thema MFC empfehle ich dir daher noch die MFC-Bibel "Windowsprogrammierung mit MFC" von Jeff Prosise (MicrosoftPress Verlag). Hau rein! --K:R-I)Z++ |
|
Profil || Suche |
|
002 21.11.2005, 17:05 felekchris |
hallo Kriz, die Lösung des Problems ist sogar einfacher als ich vermutet habe. Ich habe einen groben Fehler begangen, indem ich das Dialogfenster lokal aufrufe, somit kann ich gar nicht an die Variablen rankommen. dialogClasse dlg; anstatt dialogClasse dlg; Nichtsdestotrotz vielen dank für Deine ausführliche Anleitung. felix christian -- |
|
Profil || Suche |

