Problem Text in Dialog auszugeben
-
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
-
Sama was ist das hier für nen Zusammen geschußter =!
CString strBaud; strBaud = "Test"; SetDlgItemText(IDC_BAUDRATE, strBaud);Das gehört in diesem Fall in die OnInitDialog des Dialoges in dem sich das Ctrl befindet.!
Es kommt auch immer die Fehlermeldung GetActiveView: Keine element von CWnd
Das liegt daran das GetActiveView auch wenig mit einem CWnd zu tun hat. ... Hast du evt. Versucht mit AfxGetMainWnd()->GetActiveView an einen Pointer auf dein View zu kommen?! Das ist ja auch nicht so falsch... muss aber korrekt heißen:
((CMainFrame*)AfxGetMainWnd())->GetAcviteView()->...[edit]
Jo noch was vergessen:error C2664: 'SetDlgItemTextA': Konvertierung des Parameters 1 von 'CPicToLightView *' in 'HWND' nicht möglich
Also. Jetzt weiß ich glaube ich was du willst... willst du von außerhalb einen Pointer von der View Klasse bekommen und da dann acces auf ein Item ?!
CPicToLightView* pView = (CPicToLightView*)(((CMainFrame*)AfxGetMainWnd())->GetActiveView()); pView->SetDlgItemText(IDC_..., ...);
-
die fehlermeldung kommt trotzdem noch

-
Benutze doch die Funtion GetSafeHwnd() an der Stelle wo der HWND gefordert wird.
-
uih, vielen dank, das ist es jetzt funktioniert es voelen dank, das war genau das ding!!!

danke, aber jetzt erst einmal ranmachen, schauen was da passiert
-
Welche Version hast de denn nu genommen

Aja... mit GetSafeHwnd einen handle zu bekommen.. jo das geht natürlich... meiner Meinung nach aber nicht sooo eine schöne Lösung
