求助!如何截获窗口中的滚动条消息,SetWindowsHookEx中用那个钩子?WH_MSGFILTER么?

ChocoboY 2004-10-15 12:47:36
我想截获指定窗口中的滚动条消息:如WM_HSCROLL,WM_VSCROLL之类的.该怎么弄?
...全文
325 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
roger_ding 2004-10-15
  • 打赏
  • 举报
回复
WH_CALLWNDPROC

但是很多控件的滚动不会产生WM_HSCROLL,WM_VSCROLL
ChocoboY 2004-10-15
  • 打赏
  • 举报
回复
to: 海天一色
thank you,我还有个问题,用CALLWNDPROC函数的时候,要注意些什么,好象有些消息不能截获,一但对这些截获的消息进行操作就把进程卡死了...

to: psbeond
用MSGFILTER不能截获到具体的滚动事件哦,比如WM_VSCROLL的,只截获到滚动条的鼠标消息...
psbeond 2004-10-15
  • 打赏
  • 举报
回复
是的
1、使用
g_Hook = ::SetWindowsHookEx( WH_MSGFILTER, MessageProc, NULL, ::GetCurrentThreadId() );
安装钩子
2、
LRESULT CALLBACK MessageProc( int nCode, WPARAM wParam, LPARAM lParam )
{
if ( nCode == MSGF_SCROLLBAR )
{
MSG *pMsg = ( MSG * )lParam;
CString str;
str.Format( "%x", pMsg->message );
TRACE( str );//在这里可以踪一些滚动条消息

if ( pMsg->message == 0x200 )
SendMessage( pMsg->hwnd, WM_PAINT, pMsg->wParam, pMsg->lParam );
}
return CallNextHookEx( g_Hook, nCode, wParam, lParam );
}
ChocoboY 2004-10-15
  • 打赏
  • 举报
回复
我试试,顺便问下,WH_MSGFILTER是不是只截获产生滚动条自身的消息,如在滚动条上的鼠标事件等

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧