VK_RETURN Problem
-
LRESULT CALLBACK IPEditProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { case WM_KEYDOWN: switch(wParam) { case VK_RETURN: MessageBox(0,"Return","Return",MB_OK); break; case VK_SHIFT: MessageBox(0,"Shift","Shift",MB_OK); break; } } return CallWindowProc ((WNDPROC) PrevWndProcEdit, hwnd, message, wParam, lParam); }So habe ich meine Proc geschrieben.
Wenn ich Shift druecke kommt auf die MsgBox.
Bei Return jedoch nicht ! Warum das ??
-
WM_KEYDOWN
Return Values
An application should return zero if it processes this message.
-
Was soll ich dann benutzten damit ich Enter/Return Taste abfangen kann ?
-
Nee, du sollst deine bearbeitete Teil-Nachricht WM_KEYDOWN (wParam == VK_RETURN) mit return (0L); abschließen.
Alternativ: WM_CHAR
-
LRESULT CALLBACK IPEditProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { case WM_KEYDOWN: switch(wParam) { case VK_SHIFT: MessageBox(0,"Shift","Shift",MB_OK); break; case VK_RETURN: MessageBox(0,"Enter","Enter",MB_OK); break; } return (0); } return CallWindowProc ((WNDPROC) PrevWndProcEdit, hwnd, message, wParam, lParam); }Funktioniert immer noch nicht. Es ist uebrigens die Proc von dem hier :
hEdit_IPAddress = CreateWindowEx(NULL,"EDIT","",WS_CHILD|WS_BORDER|WS_VISIBLE|ES_WANTRETURN,padding_left + 90,8,100,20,hWnd,NULL,GetModuleHandle(NULL),NULL);Vielleich da noch was zu beachten ? Komisch denn VK_SHIFT funktioniert ja einwandfrei
-
Windows schickt dir VK_RETURN nicht, weil es diese Taste selbst bearbeitet z.B. um eine Taste im Fenster zu "betätigen".
-
Hab als Style einfach
ES_MULTILINEgemacht , nun funktioniert es !
-
Nee sollte aber eher so aussehen:
case WM_KEYDOWN: switch(wParam) { case VK_SHIFT: MessageBox(0,"Shift","Shift",MB_OK); return (0); case VK_RETURN: MessageBox(0,"Enter","Enter",MB_OK); return (0); } break;