Problem Text in Dialog auszugeben
-
ABeginner schrieb:
string strVar; strVar= "test"; SetDlgItemText(IDC_EDIT, strVar);aber das mit dem string funktioniert nicht. kommt immer die fehlermeldung nicht deklarierter bezeichner.
Ehm, wenn ich dich ergänzen darf, Estartu ...
Diese Fehlermeldung, wenn sie an der Stelle SetDlgItemText auftaucht, würde doch eher darauf hindeuten, dass sein IDC_EDIT nicht deklariert ist.
Hast du, ABeginner, auf deinem Dialog ein Edit erstellt und diesem die ID IDC_EDIT verpasst?Grüssli
-
Oh sorry.
Vielleicht ist es aber auch keine Dialogklasse, dann kennt er gleich das SetDlgItemText nicht.

Dazu bräuchte man die genaue Meldung.
-
hallo,
wenn ich das z.b. folgendermaßen mache:
SetDlgItemText(IDC_HARDWARETYPE, "Text");kommt folgende fehlermeldung:
SetDlgItemTextA: Funktion akzeptiert keine 2 Argumente.Wenn ich alles so lasse und CString verwende, kommt die folgende Fehlermeldung:
SetDlgItemTextA: Funktion akzeptiert keine 2 Argumente.
-
Das mit den 2 Argumenten rührt daher, dass der Compiler hier die WinAPI-funktion auf Übereintimmung geprüft hat und die verlangt noch einen HWND. Zum eigentlichen Problem: Der operator (LPCTSTR) ist für string nicht definiert, aber für CString versuchs doch einfach damit.
Edit: Sorry ich dachte das:
SetDlgItemText(IDC_HARDWARETYPE, "Text");funktioniert.
Dann liegts wirklich daran, das deine Klasse nicht von CDialog abgeleitet ist, du musst also noch ein HWND auf deinen Dialog mitgeben oder direkt einen Pointer auf den Dialog.
-
wie komm ich denn an den zeiger auf meinen dialog?
-
ich hab auch keinen hwnd, sondern einen cwnd!?

-
Hier stand blödsinn ... schaut einen Post weiter!
-
Dravere, wenn man diese beiden Zeilen nimmt, geht das mörderisch gegen die Wand.

Die untere Zeile sollte aber korrekt sein.
Ich hätte es allerdings so versucht:pDialog->SetDlgItemText(IDC_HARDWARETYPE, "Text");
-
Hups ... wo hatte ich meinen Kopf liegen lassen *lol* ...
Mom ich editier das mal schnell ^^Grüssli
-
wenn ich das probiere
pDialog->SetDlgItemText(IDC_HARDWARETYPE, "Text");
kommt die Meldung pDialog: nichtdeklarierter Bezeichner
-
Ja wie heißt den der Zeiger bei dir?

ABeginner schrieb:
ich hab auch keinen hwnd, sondern einen cwnd!?

Der den du da meinst.
-
so, jetzt mal in ruhe von vorne

hiermit wird der dialog aufgerufen, in dem ich die comboboxen habe. die gewählten daten der boxen werden dann in variablen gespeichert usw.void CPicToLightApp::OnAppSettings() { CSettingsDlg settingsDlg; settingsDlg.DoModal(); m_baud= settingsDlg.m_baudr; CString cbaud; cbaud= "test"; SetDlgItemText(IDC_BAUDRATE, cbaud); }der dialog, in dem ich die daten in den ariablen wieder anzeigen will ist in der klasse PicToLightView
habe nun mal folgends probiert, habe einfach einen button genommen und wenn man auf den klickt, werden die daten in dem dialog angezeigt. die funktion dazu sieht so aus, das funzt auch:
void CPicToLightView::OnNeu() { SetDlgItemText(IDC_HARDWARETYPE,"2"); SetDlgItemText(IDC_BAUDRATE,"test"); SetDlgItemText(IDC_MESSAGETYPE,"Standard"); UpdateData(FALSE); }nur ich weiß irgendwie nicht, wie ich das mit demdialog anstellen soll, also mit dem zeiger...da stehe ich voll auf der leitung
-
Also sag mal, wenn du so programmierst, ohne dir dabei was zu überlegen, dann würde ich dir vorschlagen es zu lassen, denn das endet in der Katastrophe! Und es hat auch keinen Sinn, sry ^^
Oder dann schlage ich vor, dass du dir dringend ein paar Tutorials holst und andere Lernbücher, um mindestens mal eine Grundahnung zu bekommen was verschiedene Zeiger und co sind. Und damit du dann auch lernst, was ein nicht deklarierter Bezeichner ist, bzw. da müsstest du wohl fast besser einen Duden kaufen

Grüssli
-
Okay, ich versuchs mal nicht so niederschmetternd:
Was machen diese Zeilen?CSettingsDlg settingsDlg; settingsDlg.DoModal(); m_baud= settingsDlg.m_baudr; CString cbaud; cbaud= "test"; SetDlgItemText(IDC_BAUDRATE, cbaud);Schreib bitte mal hinter jede Zeile, was das deiner Meinung nach tut.

-
CSettingsDlg settingsDlg; settingsDlg.DoModal(); //öffnet den Dialog IDD_Settings als modalen Dialog m_baud= settingsDlg.m_baudr; //m_baudr ist eine variable in dem Settings //dialog, diese daten weden in die variable //m_baud übernommen CString cbaud; //"Stringvariable" deklarieren cbaud= "test"; // Inhalt zuweisen SetDlgItemText(IDC_BAUDRATE, cbaud); //Inhalt von cbaud an das Textfeld in dem //Dialog IDD_INPUT_FORM ausgeben, welches //das Hauptfenster ausfüllt, allerdings //steckt dieser dialog ja in der klasse //CPicToLightViewna so einigermaßen zumindest
-
Okay, das sieht gut aus.

Noch kurze Frage: Willst du mit dem SetDlgItemText auf etwas im settingsDlg zugreifen?Wenn ja, überlegt mal, was "öffnet [...] als modalen Dialog" genau bedeutet.
-
nein, darauf möchte ich nicht zugreifen.
wenn ich das programm starte, öffnet sich ein fenster mit menüleise usw. dieses wird von dem dialog INPUT_FORM ausgefüllt. über das menü öffne ich dann den SETTINGS Dialog, stelle in diesem etwas an den comboboxen ein. diese daen, werden in variablen gespeichert, wenn ich diesen dialog schließe. mit
m_baud= settingsDlg.m_baudr;lese ich ja die daten aus (hier als beispiel an einer variablen) und schreibe das in die variable m_baud. abhängig davon, was in der variablen drin steht, will ich dann in dem hauptfensterdialog einen text ausgeben.
CString cbaud; cbaud= "test"; SetDlgItemText(IDC_BAUDRATE, cbaud);nur ich kann auf den dialog, der das hauptfenster ausfüllt nicht zugreifen, da hakt es ja......
hoffe man kann das so einigermaßen verstehen
-
Ach, du meinst den Formview?

http://www.c-plusplus.net/forum/viewtopic-var-t-is-125623.html
Abschnitt 5
-
im prinzip so, ich hab auch die
# C...App
# CMainFrame
# C...Doc
# C...Viewund der hauptfensterdialog stekct nunmal in der C(PicToLight)View
-
ekomme auch immer die fehlermeldung getActivevie keine element von cwnd ist
und
error C2664: 'SetDlgItemTextA': Konvertierung des Parameters 1 von 'CPicToLightView *' in 'HWND' nicht möglich