我使用普通的Windows API。 我想使用箭头键VK_UP,VK_DOWN在对话框的文本框之间导航。 VK_LEFT,VK_RIGHT。 为了得到WM_CHAR,我已经将Textboxs子类化了,我得到了每一次击键,包括退格,删除等,但没有箭头键! 我究竟做错了什么? 谢谢你的建议!
//subclassing
SetWindowSubclass(GetDlgItem(hDlg, IDC_TEXTBOX1),TextBoxProc, IDC_TEXTBOX1,param);
与
LRESULT CALLBACK
TextBoxProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam,
UINT_PTR Id, DWORD_PTR param)
{
switch (msg)
{
case WM_CHAR:
char c= (char)wParam;
etc
}
答案 0 :(得分:1)
应该是WM_KEYDOWN
而不是WM_CHAR
LRESULT CALLBACK TextBoxProc(
HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, UINT_PTR, DWORD_PTR)
{
switch (msg)
{
case WM_KEYDOWN:
{
if (wParam == VK_DOWN)
{
OutputDebugString(L"VK_DOWN\n");
return TRUE;// or break!
}
break;
}
default:break;
}
return DefSubclassProc(hWnd, msg, wParam, lParam);
}