C++, API, Subclassen Gibt es eine Nachricht wenn ein EditFeld den Focus bekommt

HansJ

Mitglied
Hallo,
ich möchte wenn ein Editfeld den Focus bekommt, Zeichen eingeben und wenn die Entertaste gedrückt wird wieder zurück in die Hauptnachrichten Schleife . Gibt es eine Nachricht dafür so wie im Beispiel bei WM_CREATE und WM_DESTROY?


static LONG_PTR PrevWndProcEdit;
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static HWND hwndEditAlt;
switch (message)
{
case WM_CREATE:
hwndEditAlt = CreateWindow("EDIT","",WS_VISIBLE|WS_CHILD|WS_BORDER,20,20,100,30,
hwnd,0,((LPCREATESTRUCT)lParam)->hInstance,0);
PrevWndProcEdit = SetWindowLongPtr (hwndEditAlt, GWLP_WNDPROC,
(LONG_PTR) EditWndProc);
return 0;
case WM_DESTROY:

SetWindowLongPtr (hwndEditAlt, GWLP_WNDPROC, PrevWndProcEdit);
PostQuitMessage (0);
return 0;
}
return DefWindowProc (hwnd, message, wParam, lParam);
}
LRESULT CALLBACK EditWndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_CHAR:
MessageBox (NULL, "Taste!", "Tasteneingabe im Editfeld", NULL);
break;
}
}
 
Ein Edit sendet EN_SETFOCUS und EN_KILLFOCUS an sein Parent, dazu braucht man nicht subclassen.

Ein Edit bekommt aber auch genauso WM_SETFOCUS und WM_KILLFOCUS wie jedes andere HWND.
 
Zurück