关于在MFC里利用HOOK捕获键盘消息的问题
如题我在单文档利用在VIEW类重载CInputinput;HHOOKhook;intCString_textView::OnCreate(LPCREATESTRUCTlp...
如题我在单文档利用在VIEW类重载
CInput input;
HHOOK hook;
int CString_textView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
int CString_textView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
hook=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,NULL,GetCurrentThreadId());
// TODO: 在此添加您专用的创建代码
return 0;
}
}
LRESULT CALLBACK KeyboardProc(
__in int code,
__in WPARAM wParam,
__in LPARAM lParam
)
{
if(wParam==VK_F2)
{
input.Create(IDD_INPUT);
input.ShowWindow(SW_SHOW);
if(input.m_hWnd)
return 1;
return 1;
}
else return CallNextHookEx(hook,WH_KEYBOARD,wParam,lParam);
}
我现在在主窗口按F2可以看到对话框,但是马上就弹出错误,
请问怎么处理? 展开
CInput input;
HHOOK hook;
int CString_textView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
int CString_textView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
hook=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,NULL,GetCurrentThreadId());
// TODO: 在此添加您专用的创建代码
return 0;
}
}
LRESULT CALLBACK KeyboardProc(
__in int code,
__in WPARAM wParam,
__in LPARAM lParam
)
{
if(wParam==VK_F2)
{
input.Create(IDD_INPUT);
input.ShowWindow(SW_SHOW);
if(input.m_hWnd)
return 1;
return 1;
}
else return CallNextHookEx(hook,WH_KEYBOARD,wParam,lParam);
}
我现在在主窗口按F2可以看到对话框,但是马上就弹出错误,
请问怎么处理? 展开
若以下回答无法解决问题,邀请你更新回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询