Combobox: Buchstabeneingaben abfangen in WindowProc
-
Hallo!
Ich habe eine Klasse die eine eigene Combobox ist, aber mit schwarzem Text wenn es disabled ist.
Und die nimmt leider im disableten Zustand Buchstaben an und springt zum passenden Eintrag.
Hier ist die Funktion:
if( !m_bEnableEditing ) if( message == WM_LBUTTONDOWN || message == WM_LBUTTONDBLCLK || message == WM_KEYDOWN || message == WM_VKEYTOITEM ) return FALSE; return CComboBox::WindowProc(message, wParam, lParam);Wie muss ich die if nun ergänzen damit das nicht mehr passiert? Ich dachte, das sei mit WM_KEYDOWN erledigt.

Wer weiß Rat?
-
Eine ComboBox besteht aus mehreren Fenstern (schau es Dir mit Spy++ an). Die CComboBox selbst ist nur der Container. In der ComboBox ist noch ein Edit Control,dass den Focus hat und das die Zeicheneingaben erhält. Dein äußeres Fenster bekommt kaum Mausnachrichten eun keine Tastatureingaben.
Hole Dirdas Handle des Edit Controls und subclasse es. Besorge Dir die Handles mit GetComboBoxInfo.
http://msdn.microsoft.com/en-us/library/bb775939(VS.85).aspx
-
Man kann sich auch das Edit Control besorgen und EM_SETREADONLY anwenden...