Edit Control Feld mit CString füllen
-
Hallo,
ich habe ein Problem mit einem Edit Control Feld und zwar möchte ich es mit einem CString füllen. Dieses Edit Control Feld befindet sich in einem Dialog. In diesem Dialog wird durch klicken auf einen Button ein zweiter Dialog erzeugt. In diesem zweiten Dialog, gibt es eine Tabelle (List Control) auf die man einen Doppelklick machen kann und die Daten der angeklickten Spalte übernommen werden. Nach diesem Doppelkick schließt sich der 2. Dialog und ich möchte in dem 1. Dialog zwei Daten aus der Tabelle in zwei Edit Control Felder übergeben.
Leider bekomm ich gar nichts in diese Edit Control Felder ringeschrieben. Muss ich das irgendwo anderst machen?
Mache ich sonst noch etwas falsch?void CRepair::OnDblclkRepairTable(NMHDR* pNMHDR, LRESULT* pResult) { int nSel = m_repairTableView.GetSelectionMark(); strColumn1 = m_repairTableView.GetItemText(nSel, 0); strColumn2 = m_repairTableView.GetItemText(nSel, 1); SetDlgItemText(IDC_EDIT_BAUTEIL, strColumn1); SetDlgItemText(IDC_EDIT_URSACHE, strColumn2); UpdateData(false); OnOK(); *pResult = 0; } void CRepair::OnOK() { CDialog::OnOK(); }Danke für die Hilfe!
Gruß gabele
-
Ich nehme an IDC_EDIT_URSACHE und IDC_EDIT_URSACHE sind im zweiten Dialog nicht bekannt! Du musst einen Pointer des ersten Dialogs an deinen zweiten Dialog übergeben. Oder du fügst deinem zweiten Dialog zwei Member-Variablen hinzu, die diese Werte speichern und liest diese dann vom ersten Dialog aus!
-
Boardsuche ergibt: http://www.c-plusplus.net/forum/viewtopic-var-t-is-154160
-
Zunächstmal danke für die Antworten.
Allerdings liegt mein Problem momentan nicht an der Übergabe von den Variablen sonder beim Einfügen in das Edit Control Feld.
Ich weiß das es mit diesem Befehl geht:SetDlgItemText(IDC_EDIT_BAUTEIL, "test")Allerdings kann ich das nicht einfach in meine Funktion einfügen, obwohl die Funktion sich in der KLasse befindet in der sich auch das Edit Control Feld befindet. In einer anderen Funktion, die ich aber nicht slebst geschrieben habe Funktioniert es.
Kann mir jemand sagen was ich falsch mache?Gruß gabele
-
SetDlgItemText bezieht sich auf das aktuele Objekt, also den Dialog, den Du offen hast. Du kannst also dieses Statement nur in dem entsprechenden Kontext ausführen oder Du benötigst eben das Objekt selbst und führst es beispielsweise so aus:
myDlg.SetDlgItemText(IDC_EDIT_BAUTEIL, "test");
-
Du meinst wahrscheinlich eher so, oder?
SetDlgItemText(hDlg, IDC_EDIT_BAUTEIL, "test");
-
Nein so:
myDlg.SetDlgItemText(IDC_EDIT_BAUTEIL, "test");