我想知道当子窗口(如“编辑”或“按钮”)有焦点时按下的虚拟键的值。
怎么做?
最佳答案
一种方法是
WNDPROC g_OldProc;
LRESULT CALLBACK MyEditWindowProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
if ( uMsg == WM_KEYDOWN )
{
// Handle key down.
}
return g_OldProc( hwnd, uMsg, wParam, lParam );
}
然后在适当的时候
g_OldProc = (WNDPROC)GetWindowLongPtr( hEdit, GWLP_WNDPROC );
SetWindowLongPtr( hEdit, GWLP_WNDPROC, (LONG_PTR)MyEditWindowProc );
这将用自己的窗口过程替换hEdit控件的窗口过程,该窗口过程反过来调用原始窗口过程。
关于c - 如何在WS_CHILD中获取WM_KEYDOWN的virtkey值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1842231/