CComboBox-Eintrag zuweisen
-
Ich habe einen Dialog mit CComboBox, der bereits beim Öffnen eine Eintrag zugewiesen werden soll, der dann "im Fokus" steht (also ohne Auswahl in der unaufgeklappten Combobox). Wie geht das?
-
Mein Vorschlag: CComboBox::SetCurSel() oder SelectString()
-
und wenn ich "(nichts ausgewählt)" reinschreiben will?
-
CComboBox::SetFocus();
dann ist der curser in der leeren combobox
New Edit:
aber nicht wenn du es in die OnInitDialog setzt da dort das dialogfeld noch nicht vollständig erstellt ist.
-
Ich glaub ich steh mal wieder aufm Schlauch...
Cursor in der leeren ComboBox - das ist schon mal gut. UDN wie schreibe ich dann den Schriftzug rein?
-
int CListBox::InsertString( int nIndex, LPCTSTR lpszItem );
fügt dir einen string an den übergebenen Index ein und gibt die neue größe der Listbox zurück
oder
int CListBox::AddString( LPCTSTR lpszItem );
wenn ich die MSDN richtig verstanden hab fügt dir Addstring sofern du die Listbox nicht mit Sortieren erstellst am ende der listbox ein ansonsten dort wohin er von seiner sortiereung passt. und gibt dir auch wieder die neue gesamtgröße zurück.
anbei würd ich dir gen noch den link an die hand geben
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmfc98/html/_mfc_clistbox.asp
-
joergh schrieb:
Ich glaub ich steh mal wieder aufm Schlauch...
Cursor in der leeren ComboBox - das ist schon mal gut. UDN wie schreibe ich dann den Schriftzug rein?
Entweder machst Du "(Nichts ausgewählt)" zu einem eigenen Eintrag und selektierst diesen. Dass ist das einfachste.
Oder DU musst zu Ownerdraw greifen.
-
Ich finde SetDlgItemText(IDC_COMBO1, "(Nichts ausgewählt)" ); noch einfacher.
-
mit
SetDlgItemText(IDC_COMBO1, "(Nichts ausgewählt)" );
setzt du den string aber nur in das textfeld, nicht aber in den auswahlbereich der combobox. sobald man etwas auswählt wäre der String dauerhaft verschwunden.
-
Dann habe ich wohl "also ohne Auswahl in der unaufgeklappten Combobox" und "Nichts ausgewählt" falsch verstanden...