请教如何捕捉鼠标按住标题栏移动后放开的消息

请教如何捕捉鼠标按住标题栏移动后放开的消息,第1张

按钮也是窗口,因此当鼠标移动到按钮上面后WM_MOVE消息就只发送给按钮而不会发送给CTOOLTESTView窗口因此在CTOOLTESTView::OnMouseMove里面是捕捉不到按钮上面的鼠标移动消息的,Picture Control控件在Notify属性为FALSE的情况下鼠标消息是可以穿透的,而按钮控件没有这个功能。如果一定要使用按钮控件,可以在CTOOLTESTView

使用定时器的办法,比如定时时间间隔为10毫秒,每10毫秒检测一次鼠标的位置(使用API GetCursorPos函数,注意,函数名在这里可能拼错,自己在网上搜一下),这个函数获取的位置坐标是屏幕坐标,判断一下是否在按钮里面就可以了。

如何捕获窗口中的鼠标点击消息?包括在窗口中的其它控件上点击

我想让我某一控件实现Combobox下拉框的效果,当鼠标不在自己区域内点击时隐藏

mouseDown事件或者是MousePress我记不清了,自己找找好了

在form窗体的事件哦

你试过吗?在窗口的其它控件上单击时,根本不触发Form的MouseDown事件

你可以写一个函数, 判断当前鼠标指针下的控件是否是 你所想隐藏的控件.然后在每个控件的click中调用aaa

procedure TForm1.aaa(sender:Tobject)

var

p:TPoint

mousecontrl:TWincontrol

begin

GetCursorPos(P)

mousecontrl:= findVCLWindow(P)

if mousecontrl <>TWincontrol(self.button1) then

self.button1.Visible:=false

end

procedure TForm1.Button2Click(Sender: TObject)

begin

aaa(sender)

end

没有简单点的方法吗?如果窗口中控件很多的话太繁琐

一个控件(比如button、pannel)怎么知道光标移进、移出自己的范围?

procedure TForm1.Button1MouseMove(Sender: TObjectShift: TShiftStateX,

Y: Integer)

begin

if (X>= 0) and (X<= Button1.Width) and (Y>= 0) and (Y<= Button1.Height) then

showmessage('inside')

end

自定义一个函数截获鼠标消息,处理她 然后再提交的父类处理

自己写一个窗口过程,原来的窗口过程的指针赋给它,然后分析有无WM_LBUTTONDOWN或

WM_LBUTTONUP消息,不是的话DefWindowProc正常派发,是的话特殊处理.

同意楼上,可以截WINDOWS消息。

我找到了CM_CancelMode消息,结贴


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11406806.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存