CDialg这个类好像是从CWnd类派生出来的,按理说,这个DestroyWindow可以调用CWnd中的啊,MSDN中CWnd类中的DestroyWindow是不带参的LRESULT CALLBACK KeyboardProc(
int code, // hook code
WPARAM wParam, // virtual-key code
LPARAM lParam // keystroke-message information
)
{
if(VK_SPACE+VK_F4==wParam)
{
DestroyWindow();
return 1;
} return CallNextHookEx(keyboard,code,wParam,lParam);}
但是我这段代码,E:\软件\VC6\VC6\MyProjects\hook\hookDlg.cpp(109) : error C2660: 'DestroyWindow' : function does not take 0 parameters
有这样一个报错,没看懂,请教了,
int code, // hook code
WPARAM wParam, // virtual-key code
LPARAM lParam // keystroke-message information
)
{
if(VK_SPACE+VK_F4==wParam)
{
DestroyWindow();
return 1;
} return CallNextHookEx(keyboard,code,wParam,lParam);}
但是我这段代码,E:\软件\VC6\VC6\MyProjects\hook\hookDlg.cpp(109) : error C2660: 'DestroyWindow' : function does not take 0 parameters
有这样一个报错,没看懂,请教了,
要不重写虚函数,DestroyWindow,然后跳转到这个虚函数行不行啊,嘿嘿,不知道有米有这个方法
要不重写虚函数,DestroyWindow,然后跳转到这个虚函数行不行啊,嘿嘿,不知道有米有这个方法
直接给对话框类添加虚函数:PreTranslateMessage(MSG* pMsg)
对键盘按键进行处理不就可以么
也就是不用自己写回调函数
是关掉自己本身窗口?
还是关闭被Hook的窗口?
::DestoryWindow(hWnd);
BOOL CMyMusicPlayerDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if(pMsg->message==WM_KEYDOWN)//处理键盘按键消息
{
if(pMsg->wParam==VK_ESCAPE||pMsg->wParam==VK_RETURN)//退出键或者回车键
return TRUE;
else
return CDialog::PreTranslateMessage(pMsg);
}
return CDialog::PreTranslateMessage(pMsg);
}
慢慢学,不要浮躁