Ich werde noch verrückt....... [UND ES GEHT WEITER :/]
-
newkid
-
PS:
woher hast du den schmarn eigentlich her?
if(m_dSchemesList.DoModal() == IDOK)
{
m_strFilelist = "123";
UpdateData(FALSE);
}Das denkt sich nicht mit
Mein Hauptdialog heißt: CMEDAKODlg
Der Unterdialog heißt: CSchemesListDlgDie, zu transferiende, Variable aus CMEDAKODlg heißt "m_strFilelist".
denn
1. was ist m_dSchemesList? Hast du sicher eine membervariable extra dafür angelegt?
2. du willst den wert von m_strFilelist übergeben, aber du schreibst den stringwert "123" rein wenn der dialog OK zurückgibt. bist du sicher das du das willst?
3. was haben alle anfänger immer mit dem UpdateData immer? Lies nochmal in deinem "intranet" durch was da zu UpdateData steht. Das brauchst du eher selten ( ausser du arbeitest extrem mit editboxen )
-
isabeau2 schrieb:
newkid
huh?
-
Hi Leute,
danke für alle Tipps.
Mittlerweile läuft's.....
[m_dSchemesList ist/war die Member-Variable für meinen "Unter-"Dialog.]
Nichtsdestotrotz ich sehe nun meine Werte und freue mich.
Gruss
kk3003
-
void CSchemesListDlg::SetVariable( CString &_str ) { m_meineUnterdialogVariable = _str; }
Ich habe in der Klasse des Unterdialoges eine Memberfunktion in folgender Form angelegt:
Funktionstyp: void
Funktionsdeklaration: SetVariable
Zugriffsstatus: public
Weder statisch noch virtuell aktiviert-> Funktion ist erzeugt worden
Nun fülle ich Sie mit Leben:
void CSetWeb::SetVariable(CString &m_sPathExe) { m_sTEST = m_sPathExe; MessageBox(m_sTEST); }
-> Hauptdialogvariable [m_sPathExe] ist als CString in der Hauptdialogklasse definiert (Member-Variable) und gefüllt. MessageBox funkt. dort.
-> m_sTEST als CString im Unterdialog (Member..)Fehlermeldung:
Kompilierung läuft... SetWeb.cpp *\SetWeb.cpp(64) : error C2511: 'SetVariable' : Überladene Member-Funktion 'void (class CString &)' nicht in 'CSetW eb' gefunden *\setweb.h(13) : Siehe Deklaration von 'CSetWeb' Fehler beim Ausführen von cl.exe. MEDAKO.exe - 1 Fehler, 0 Warnung(en)
-
Hi,
vielleicht hat jemand kurz Zeit und kann mir helfen?!
*push*
Danke im voraus
Gruss
kk3003
-
Warum so kompliziert?
Übergib deine Variable doch einfach über den Konstruktor deines UnterdialogsKonstrukor Unterdialog
class CDlgUnterdialog
{
CDlgUnterdialog(CString Maindlgvar);
CString strMainDlgVar;
};CDlgUnterdialog::CDlgUnterdialog(CString Maindlgvar)
{
strMainDlgVar = Unterdlgvar
}Anlegen des Objekts deines Unterdialogs
dlg = CDlgUnterdialog(Hauptdlg - Var)
Gruß CP
-
kk3003 schrieb:
Fehlermeldung:
Kompilierung läuft... SetWeb.cpp *\SetWeb.cpp(64) : error C2511: 'SetVariable' : Überladene Member-Funktion 'void (class CString &)' nicht in 'CSetW eb' gefunden *\setweb.h(13) : Siehe Deklaration von 'CSetWeb' Fehler beim Ausführen von cl.exe. MEDAKO.exe - 1 Fehler, 0 Warnung(en)
hast du denn in der CSetW.h auch sowas stehen?
class CSetW { public: SetVariable(CString &m_sPathExe); private: CString m_sTEST; };
Die Meldung heist nämlcih soviel wie: "Funktion 'SetVariable(CString irgendwas)' gibt es nicht in dieser Klasse". Das kann bedeuten das du bei der Deklaration in der .h Datei z.B. nur
class CSetW { public: SetVariable(); private: CString m_sTEST; };
stehen hast.
-
Hi,
schon mal Danke für die Antworten.
Ich teste die Lösungen mal und melde mich dann wieder...
Gruss
k3003
-
Hi,
ich habe jetzt mal versucht beide Lösungen umzusetzen und bin
kläglich gescheitert...Das kann doch nicht so kompliziert sein, Variablen von Klassen miteinander bekannt zu machen... ?!
Vielleicht hat jemand ein Online-Tutorial zur Hand oder ein Buchtipp?!
Ich komme da nicht weiter.... ich schiebe auch gerne mal mein Projekt
hoch... damit ich weiterkomme.Danke im voraus
Gruss
kk3003
-
Versuchs mal unter: www.mut.de -> Leseecke.
Da gibt es zwei freebooks 1.) Visual C++ in 21 Tagen und 2.) C++ in 21 TAgen, vielleicht findest du ja da was:)
-
Hi,
danke für den Tipp. Das "VC++ in 21 Tagen"-Buch liegt in gedruckter Form
vor mir. Für den Einstieg war es auch garnicht schlecht.Das betreffende Problem finde ich aber leider nicht oder es wird garnicht erwähnt...
Gruss
kk3003