Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Dialog erneut laden

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
29.06.2004, 18:37 Uhr
t10ottoo



Hi,

hab da mal ne dumme Frage. Ich hab zwei Dialoge. In dem einen Dialog geb ich einen Wert ein, dann klick ich auf nen Button, der nen anderen Dialog öffnet und diesen Wert in ein Editfeld anzeigt. Nun will ich den Wert im zweiten Dialog ändern und wenn ich auf OK klicke, soll sich der zweite Dialog wieder schließen und im ersten Dialog soll sich der Wert aktualisieren. Also ich hab alles hinbekommen, bis auf das aktualisieren des Wertes im ersten Dialog. Das Problem ist ja, dass der Dialog nicht neu geladen wird, will ich ja auch nicht, weil dann manche Elemente unsichtbar sind (weil ich das so eingestellt hab am Start) und die werden dann halt ert später sichtbar, also im ersten Dialog soll alles so bleiben wie es ist, nur der eine Wert soll den Wert aus dem zweiten Dialog bekommen.

Hab das so gemacht:

C++:
    UpdateData(TRUE);
    CVorratsprogrammDlg vorrat;
    vorrat.productmenge = edit_menge;
    UpdateData(FALSE);



Also "CVorratsprogrammDlg" ist mein erster Dialog. Die Variable "productmenge" ist auch vom ersten Dialog, wie man sieht. Die Variable "edit_menge" ist im zweiten Dialog.
Das Problem ist nun, dass der erste Dialog mir nicht den aktualisierten Wert anzeigt...

Ich hoffe, dass ich mein Problem deutlich gemacht hab...

Gruß
Thomas
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.06.2004, 18:41 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ich mach das immer so das ich dem einen dialog einen zeiger auf den anderen dialog mitgebe... über den zeiger kann ich dann die daten des anderen dialoges manipulieren...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
29.06.2004, 18:45 Uhr
t10ottoo



Öhhmm...wie soll ich dem zweiten Dialog denn einen Zeiger auf den ersten mitgeben, wenn ich den zweiten Dialog mit
produktinformationen.DoModal();
öffne?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
29.06.2004, 19:02 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ich verändere dazu meist einfach den konsturktor des dialoges den ich mit doModal aufrufe...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
29.06.2004, 19:08 Uhr
t10ottoo



Ist das hier der Konstruktor?
CProduktinformationenDlg(CWnd* pParent = NULL);
Oje...da trau ich mich ja gar nix zu ändern. Naja, die Lösung meines Problems kann ja eigentlich gar nicht so schwer sein, hab mal getestet, den Wert vom ersten Dialog durch den zweiten zu ändern und dann den ersten wieder durch doModal neu zu laden, dann steht auch der neue Wert drinne, aber er soll den Dialog ja nicht durch doModal neu laden...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
29.06.2004, 19:13 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


jo das teil meine ich
eventuell reicht es auch AfxGetMainWnd aufzurufen... da bekommst du eine CWnd* den du nach dem MainDialog casten kannst (dafür musst du in deinem modalen dialog den Header von deiner MainDialog-Klasse includieren...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
29.06.2004, 19:26 Uhr
t10ottoo



/me versteht nur Bahnhof...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
29.06.2004, 19:56 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


erste möglichkeit
modaldialog.cpp

C++:
#include "DERHAUPTDIALOG.h"
.
.
.
.

((CDerHauptdialog*)AfxGetMainWnd())->SetMember(....);




zweite möglichkeit
modaldialog.h

C++:
#include "DERHAUPTDIALOG.h"

CModalDialog(CDialog *pDlg,CWnd* pParent = NULL);

public:
.
.
.
CDerHauptdialog *pDlg;




modaldialog.cpp

C++:
CModalDialog(CDialog *pDlg,CWnd* pParent){
.
.
.
this->pDlg = (CDerHauptdialog*)pDlg;
}

.
.
.

pDlg()->SetMember(....);




Hauptdialog.cpp

C++:
.
.
.
CModalDialog dlg(this);
dlg.DoModal();


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: