Dialogbox umwandeln von domodal in non-modal
-
Wenn es um die Initialisierung von m_runter beim Öffnen des Dialoges geht, dann in OnInitDialog()
-
thx,
aller letzte Frage...
im Hauptfester habe ich ein CEDITone mit einer variable m_text.Einer meiner knöpfe führt folgendes aus...
m_text = "test"; UpdateData(FALSE);... das geht wunderbar.

Den gleiche Code setzte ich auf meine Dialogbox, die ich mit create aufrufe.Beim Compilieren...
error C2065: 'm_text' : undeclared identifierWie bekomme ich es fertig, dass ich eine Nachtricht ins CEDITone schreiben kann?
-
kann auch nicht funktionieren da m_text ein member deines Hauptdialoges is, und du aber in der klasse des childdialoges bist, also kennt der das da gar net. organisier die einen zugriff auf dein hauptfenster, gibts massen möglichkeiten, kannst ja mal googln
-
thx,
hhmmmm, das ist mir schon klar, aber ich habe überhaupt keinen schimmer, wie das funken soll.Meine Idee.
Im Dialogfeld greife ich auf classe zu, die sich im Hauptfenster befindet, und diese Klasse spuckt was in CEDITKönntest du mir sagen,nachwas ich goole soll.
(kein Witz)
-
Da wie ich gesehen habe du den this als parent im Create mit angegeben hast, brauchst du eingentlich nur noch die headerdatei deines hauptdialoges im cpp deiner childklasse einzufügen und kannst dann mit GetParent() zugreifen.
#include "deineHauptklasse.h" static_cast<CDeineHauptklasse>(GetParent())->m_text = "dein Text";So sollte der ganze spass gehen denke ich mal, hab das jetzt so mal ausn kopf hingekritzelt.
Aber wie gesagt du kannst dem dialog auch einen zeiger mitgeben und über diesen zu greifen.
-
ok,thx
ist ganz oben in im Dialogfeld#include "GamexDlg.h" #include "Gamex.h"in meinem Knopf....
static_cast<CGamexDlg>(GetParent())->m_text = "dein Text";sowie...
static_cast<CGamex>(GetParent())->m_text = "dein Text";geht nicht

Mein Compiler...
[code]
error C2061: syntax error : identifier 'CGamex'
[cpp]1.Warum habe ich einmal eine Klasse mit Dlg und einmal nicht?
2.wieso error?
-
zu 1.
weil GamexDlg.h deine Dialog-Klasse is und Gamex.h deine Application-Klasse is, als von der App aus wird die gialog-klasse instanziert und dein Programm wird ind der appp mit initInstance gestartetzu 2.
mal wieder geraten, heist deine App auch CGamex und besitzt die wirklich die membervariable m_text?
-
ok,nochmal geschaut.
unter classview habe ich...
GamexDlg
GamexAppund der CString ist m_text,und ist im Hauptfenster.
-
also in der klasse CGamexDlg da muß das natürlich nach hinten los gehen wenn du
static_cast<CGamex>(GetParent())->m_text = "dein Text";schreibst. Oder anders gesagt wenn dein bekannter im haus nr 15 wohnt kannste net im haus nr 17 klingeln und dich wundern das de den net fondest

also sollte doch jetzt alle fragen geklärt sein oder?
-
@tomycat2009: Wenn du so viele Schreibfehler beim coden wie bei deinen posts machst - dann wundert mich gar nix... :p