如何捕获窗口中的鼠标点击消息

 我来答
lilipat
高粉答主

2018-09-28 · 每个回答都超有意思的
知道大有可为答主
回答量:3万
采纳率:94%
帮助的人:4984万
展开全部
如何捕获窗口中的鼠标点击消息?包括在窗口中的其它控件上点击
我想让我某一控件实现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: TObject; Shift: TShiftState; X,
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消息,结贴
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式