浮动窗口的问题? 我在浮动窗口里加入CListCtrl控件,拖动里面的icon到其他对话框,但是当鼠标离开浮动窗口时,浮动窗口并没有隐藏回去,知道鼠标放开时才隐藏。我想要的效果是当鼠标离开浮动窗口(无论是否是拖动操作),浮动窗口隐藏。请问各位高手,怎么做啊?我用了ShowControlBar(),无论参数怎么设置,都不行啊! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用TrackMoveEvent()发送WM_MOUSELEAVE消息,然后在OnMouseLeave()函数下隐藏浮动窗口ShowControlBar( &m_Bar, FALSE, FALSE );或者响应WM_MOUSEMOVE消息,再次函数下,判断鼠标是否离开浮动窗口,是,就隐藏m_Bar.GetWindowRect(&rc);if(!rc.PtInRect(point))ShowControlBar( &m_Bar, FALSE, FALSE ); CWnd::OnMouseLeaveThe framework calls this member function when the cursor leaves the client area of the window specified in a prior call to TrackMouseEvent. afx_msg void OnMouseLeave(); mimlxf's solution are good TrackMoveEvent,增加OnMouseLeave的处理,但是看样子,楼主可能用了SetCatpure,那么隐藏窗口之前的ReleaseCapture需要处理好了。 三楼的兄弟:我确实用了SetCatpure,但是当鼠标离开浮动窗口时,我还需要用SetCatpure来进行鼠标捕获啊,还不能ReleaseCapture啊!这怎么办啊! 我用的是OnMouseMove来判断鼠标位置,这时用ShowControlBar()来设置,浮动窗口并不回收,三楼说我是用了SetCapture()的原因,但是当鼠标离开浮动窗口后,我还需要进行鼠标捕获,不能ReleaseCapture(),怎么办啊? 我用的是OnMouseMove来判断鼠标位置,这时用ShowControlBar()来设置,浮动窗口并不回收,三楼说我是用了SetCapture()的原因,但是当鼠标离开浮动窗口后,我还需要进行鼠标捕获,不能ReleaseCapture(),怎么办啊? 网上有很多这样的例子,比如:上google搜索<VC界面+悬浮+停靠窗口+很经典的代码>就有自动隐藏的效果。如果不想自己下,留下email,我发给你。 我就是用csdn中有关浮动窗口的代码做的!请你认真看一下我遇到的问题,不是我不会做浮动窗口,是在浮动窗口中的CListCtrl控件中的Item拖动到其他窗口时,浮动窗口不回收。如果不是拖动操作是很正常的! 你既然SetCapture了,就会有WM_MOUSEMOVE消息给你,判断鼠标不在窗口内就把窗口隐藏就可以了。不过你这样做有个问题,如果不小心把icon拖出窗口,然后窗口没了,想把icon拖回来怎么办? 我就是这样做的,在OnMouseMove中判断鼠标位置,当移出窗口时,调用ShowControlBar( &m_Bar, FALSE, FALSE ); 但是浮动窗口并没有隐藏啊?这个问题困扰我很久了。请您帮帮忙啊!谢谢我的程序不需要再把icon拖回来,呵呵。 我不用MFC,API写了个Hello World试了一下,移出窗口ShowWindow是可以隐藏窗口的,ShowControlBar为什么不工作就不知道了,估计得跟进去看了。 您是拖动操作吗?并且在开始拖动时SetCapture,,在鼠标Up时ReleaseCapture? 是拖动操作,鼠标按下SetCapture,鼠标放开ReleaseCapture,这个过程中改变窗口大小倒是没试过,上班没时间,回家试试。 求串口通信模拟键盘操作 新手问题!! 求DM642 API函数库 线程钩子问题 .cpp文件为何经常丢失? 为什么打印出来的图片总是很小?????????急!!!!!!!!!!!!! 在线等待,如何在vc中调用asp,并实现文件的上传? 我的VC有所长进,散分。 如何给BCB编写的ActiveX控件进行数字签名,过程怎样进行? DirectX8.1与vc++6.0联合开发事宜:如何配置环境?? 怎样将整型转为浮点型 浮动窗口与浮动工具条的位置问题
OnMouseLeave()函数下隐藏浮动窗口
ShowControlBar( &m_Bar, FALSE, FALSE );或者响应WM_MOUSEMOVE消息,再次函数下,判断鼠标是否离开
浮动窗口,是,就隐藏
m_Bar.GetWindowRect(&rc);
if(!rc.PtInRect(point))
ShowControlBar( &m_Bar, FALSE, FALSE );
afx_msg void OnMouseLeave();
mimlxf's solution are good
三楼的兄弟:我确实用了SetCatpure,但是当鼠标离开浮动窗口时,我还需要用SetCatpure来进行鼠标捕获啊,还不能ReleaseCapture啊!这怎么办啊!
我用的是OnMouseMove来判断鼠标位置,这时用ShowControlBar()来设置,浮动窗口并不回收,三楼说我是用了SetCapture()的原因,但是当鼠标离开浮动窗口后,我还需要进行鼠标捕获,不能ReleaseCapture(),怎么办啊?
我用的是OnMouseMove来判断鼠标位置,这时用ShowControlBar()来设置,浮动窗口并不回收,三楼说我是用了SetCapture()的原因,但是当鼠标离开浮动窗口后,我还需要进行鼠标捕获,不能ReleaseCapture(),怎么办啊?
不过你这样做有个问题,如果不小心把icon拖出窗口,然后窗口没了,想把icon拖回来怎么办?
您是拖动操作吗?并且在开始拖动时SetCapture,,在鼠标Up时ReleaseCapture?