学习钩子跟消息:在钩子函数中抓到的消息可以取消掉吗?就是说不把消息传给来所有者?我获取消息后SENDMESSAGE发送一条WM_NULL消息给所有者 我对钩子的理解是:所有窗口消息都必须经过钩子(如果有的话),经过钩子处理后才把消息送给所有者,我试图把消息取消,查MSDN好像没有与之相关的函数,不知怎样才能解决呢?(应该可以的,在一本书上看到过,不过忘了:)),谁能说说? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Use PM_REMOVE flat on the last parameter of PeekMessage API function 程序代码:LRESULT __declspec(dllexport)__stdcall CALLBACK LowLevelMouseProc( int nCode, WPARAM wParam, LPARAM lParam){ CString str; str="ASGASDG"; if(wParam==WM_LBUTTONDOWN) { MSLLHOOKSTRUCT *Info=(MSLLHOOKSTRUCT*)lParam; UnhookWindowsHookEx(hkb); //BOOL SULT; //SULT=::PeekMessage((MSG*)lParam,NULL,0, 0,PM_REMOVE); //str.Format("%d",SULT); // ::SendMessage(::WindowFromPoint(Info->pt),WM_NULL,0,0); ::AfxMessageBox(str); } LRESULT RetVal = CallNextHookEx( hkb, nCode, wParam, lParam ); return RetVal;}你是说不CallNextHookEx( hkb, nCode, wParam, lParam ); 不行的,我试过了 if(wParam==WM_LBUTTONDOWN) { MSLLHOOKSTRUCT *Info=(MSLLHOOKSTRUCT*)lParam; UnhookWindowsHookEx(hkb); //BOOL SULT; //SULT=::PeekMessage((MSG*)lParam,NULL,0, 0,PM_REMOVE); //str.Format("%d",SULT); // ::SendMessage(::WindowFromPoint(Info->pt),WM_NULL,0,0); ::AfxMessageBox(str); wParam=0; ------给它弄成0~不让它传出去~ } http://www.csdn.net/expert/topic/1046/1046911.xml?temp=.7867395 关于语音编程,多线程的问题,请真正的大侠、高手来解决,在线等待。。。 高分求救啊! 单线程停止和暂停继续问题 播放Flash的问题 问大家个小问题。 关于MFC CArray加图片的问题 请问如何得到一个窗口句柄,然后发消息给它 难道就这样了!!!!!!!!!!!!!!???????????????? 关于脱离vc运行vc程序的问题 关于拨号上网的内幕 请问:在VC中如何将类(对象)用接口形式表出?
LRESULT __declspec(dllexport)__stdcall CALLBACK LowLevelMouseProc(
int nCode,
WPARAM wParam,
LPARAM lParam)
{
CString str;
str="ASGASDG";
if(wParam==WM_LBUTTONDOWN)
{
MSLLHOOKSTRUCT *Info=(MSLLHOOKSTRUCT*)lParam;
UnhookWindowsHookEx(hkb);
//BOOL SULT;
//SULT=::PeekMessage((MSG*)lParam,NULL,0, 0,PM_REMOVE);
//str.Format("%d",SULT);
// ::SendMessage(::WindowFromPoint(Info->pt),WM_NULL,0,0);
::AfxMessageBox(str);
}
LRESULT RetVal = CallNextHookEx( hkb, nCode, wParam, lParam ); return RetVal;}你是说不CallNextHookEx( hkb, nCode, wParam, lParam );
不行的,我试过了
{
MSLLHOOKSTRUCT *Info=(MSLLHOOKSTRUCT*)lParam;
UnhookWindowsHookEx(hkb);
//BOOL SULT;
//SULT=::PeekMessage((MSG*)lParam,NULL,0, 0,PM_REMOVE);
//str.Format("%d",SULT);
// ::SendMessage(::WindowFromPoint(Info->pt),WM_NULL,0,0);
::AfxMessageBox(str);
wParam=0; ------给它弄成0~不让它传出去~
}