Focus auf ComboBox. Wie geht das?
-
Hallo NG,
ich habe folgenden Quelltext:dwStyle |= WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_BORDER | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_HASSTRINGS | CBS_SORT; CInPlaceCombo* pCombo = new CInPlaceCombo (nItem, nCol, m_sOldString, m_sOldString); if (!pCombo->Create (dwStyle, rect, this, IDC_INPLACEEDIT)) { MessageBox(_T("Fehler! Konnte ComboBox nicht erstellen."), _T(""), MB_ICONHAND|MB_OK|MB_DEFBUTTON1); return; }
In der Create-Methode werden die Strings der ComboBox eingesetzt und das erste Element selektiert.
Nun möchte ich, das die ComboBox in Ihr Editfeld springt und das Carret anzeigt. Wie mache ich das am besten?
Ich habe es versucht mit pCombo.SetFocus (). Leider funktioniert das nicht.
Ich vermute, das das etwas damit zu tun hat, das das Caret ja eigendlich in dem Editfenster der ComboBox steht.
Was also tun?Gruß
Christian
-
Ich würd mit der Funktion EnumChildWindows mit pCombo->m_hWnd als erstem Parameter das HANDLE auf das Editfenster holen und dann per ::SetFocus(ReturnedHandle); den Focus setzen ... Sollte eigentlich tun ...
-
Habe gerade eine andere Lösung gefunden!
pCombo->SendMessage (WM_SETFOCUS, this->GetSaveHwnd, NULL)
macht alles was ich will!
Ich frage mich blos, warum SetFocus das nicht macht. Aber was soll es, hauptsache es klappt.
Danke für deine Hilfe