请教VC高手,如何在一个对话框程序中捕获鼠标消息???

powerjack 2005-09-14 08:48:53
大虾好.
   小弟现在遇到点麻烦,请教一二.
   问题是这样的.我想在一个对话框程序中捕获鼠标消息.但仅仅用WM_MOUSEMOVE这样的消息没法捕获鼠标在一些控件上运动和点击的消息.(比如对话框样做了个按钮,当鼠标在按钮上的时候就没法捕获WM_MOUSEMOVE以及鼠标按下和抬起的消息)
   请问有办法解决吗?
   还望有经验的大虾指点指点!!! :)
...全文
434 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
kugou123 2005-09-17
  • 打赏
  • 举报
回复
还是装个本进程的鼠标钩子吧。不用全局的,全局的费资源。
hundlom 2005-09-16
  • 打赏
  • 举报
回复
插入flash控件应该是最简单的。
powerjack 2005-09-16
  • 打赏
  • 举报
回复
其实我的最终目的是想做个象媒体播放器一样的东东.
在一个对话框上显示一个视频窗口,主要是能在播放窗口中能捕获鼠标事件.
powerjack 2005-09-16
  • 打赏
  • 举报
回复
首先感谢楼上的大哥们这么热心.
小弟试了下SetCapture(),
但是用了这个函数后再点击对话框上的其他按钮就不起作用了.
请问怎么样才能解决这个矛盾呢?
Alan S1 2005-09-15
  • 打赏
  • 举报
回复
支持yinzhaohui(努力)
rageliu 2005-09-15
  • 打赏
  • 举报
回复
子类话
hook
PreTranslateMessage
都可以!!视你要做什么操作而定
joyoyang 2005-09-15
  • 打赏
  • 举报
回复
很简单,楼上门的说法都有缺陷
就直接用SubclassDlgItem()把控件子类话就可以直接捕获所有的消息了并由你自己处理了。
tufaqing 2005-09-15
  • 打赏
  • 举报
回复
SetCapture();
ReleaseCapture();
DentistryDoctor 2005-09-15
  • 打赏
  • 举报
回复
有PreTranslateMessage中处理就可以了。
Apezyfly 2005-09-15
  • 打赏
  • 举报
回复
楼上正解!
yinzhaohui 2005-09-15
  • 打赏
  • 举报
回复
在预处理消息中处理(WTL中)
virtual BOOL PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_MOUSEMOVE)
{
......
}
return CWindow::IsDialogMessage(pMsg);
}
sharpshootor 2005-09-15
  • 打赏
  • 举报
回复
关注
fiftymetre 2005-09-15
  • 打赏
  • 举报
回复
这个问题在WINDOWS程序设计第七章后面一点有很详细的说明的,你可以看看的
拦截滑鼠要比放置一个老鼠夹子容易一些,您只要呼叫:

SetCapture (hwnd) ;
在这个函式呼叫之後,Windows将所有滑鼠讯息发给视窗代号为hwnd的视窗讯息处理程式。之後收到滑鼠讯息都是以显示区域讯息的型态出现,即使滑鼠正在视窗的非显示区域。lParam参数将指示滑鼠在显示区域座标中的位置。不过,当滑鼠位於显示区域的左边或者上方时,这些x和y座标可以是负的。当您想释放滑鼠时,呼叫:

ReleaseCapture () ;
从而使处理恢复正常。

呵呵希望对你有所帮助。

最后做个广告 50米深蓝 www.50mi.net  C++网站
落入凡间的猪 2005-09-14
  • 打赏
  • 举报
回复
继承windows的消息机制就可以了吧
i_noname 2005-09-14
  • 打赏
  • 举报
回复
用鼠标钩子

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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