Tab ignorieren
-
Hi,
ich hab ein Richedit Feld und habe eine besondere Funktion, wenn Tab gedrückt wird. Dazu habe ich die Fensterprozedur für das Richedit Feld durch meines ersetzt und die Bedingung " if (message == WM_KEYDOWN && wParam == VK_TAB)" eingesetzt, was auch funktioniert. Nun möchte ich aber, dass das Tab auch "verschluckt" wird, d.h. es soll nur meine Funktion aufgerufen werden, allerdings kein Tab im Feld erscheinen.
Danke, MfG
-
Dann darfst Du dieses Zeichen nicht and den Default Handler weitergeben.
Wie sieht denn die Behandlung in Deiner Fensterprozedur aus?
-
Ne mach ich auch nicht, wenn die Bedingung erfüllt ist spring ich aus der Prozedur heraus:
LRESULT CALLBACK RichProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { TCHAR szBuffer[256]; WORDPOS wp; if (message == WM_KEYDOWN && wParam == VK_TAB) { /* [...] */ return 0; } return CallWindowProc(OldRichProc, hWnd, message, wParam, lParam); }
-
IMHO kommt das auch noch als WM_CHAR rein!
-
Ja danke, WM_KEYDOWN durch WM_CHAR und '\t' statt VK_TAB hat geholfen. Danke.