求 我在一个按纽上点击左键,弹出popmenu  求如何在我鼠标移出popmenu时让它消失!

hmzgz81 2004-07-27 07:54:07
求 我在一个按纽上点击左键,弹出popmenu  求如何在我鼠标移出popmenu时让它消失!


我想在按纽的父窗体上写mousemove事件,可不知道该怎么写!

我想可能要涉及到api 编程,麻烦大家帮想想办法!
...全文
211 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hmzgz81 2004-08-01
  • 打赏
  • 举报
回复
sdafasf
befree 2004-07-29
  • 打赏
  • 举报
回复
有的人想法就是要特别
hmzgz81 2004-07-29
  • 打赏
  • 举报
回复
有没有简单点的方法啊! 

zhuomuniao 2004-07-29
  • 打赏
  • 举报
回复

移到外面点击一下自动消失了(PopMenul的特性)。
改什么非要这么BT的去修改好好的东西。
zswangII 2004-07-29
  • 打赏
  • 举报
回复
//参考如下代码~~
procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Enabled := False;
Timer1.Interval := 100;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
vHandle: THandle;
vBuffer: array[0..255] of Char;
begin
vHandle := WindowFromPoint(Mouse.CursorPos);
if Integer(vHandle) = PopupMenu1.Tag then Exit;
GetClassName(vHandle, vBuffer, SizeOf(vBuffer));
if SameText('#32768', vBuffer) then Exit;
EndMenu;
Timer1.Enabled := False;
end;

procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
vPoint: TPoint;
begin
if Timer1.Enabled then Exit;
Timer1.Enabled := True;
vPoint := ClientToScreen(Point(TControl(Sender).Left,
TControl(Sender).Top + TControl(Sender).Height));
PopupMenu1.Tag := TWinControl(Sender).Handle;
PopupMenu1.Popup(vPoint.X, vPoint.Y);
end;
hmzgz81 2004-07-29
  • 打赏
  • 举报
回复
jfgjfgh
支持中文哦 2004-07-27
  • 打赏
  • 举报
回复
需要用WM_EnterMenuLoop系列消息配合WM_Mouse系列消息!
hmzgz81 2004-07-27
  • 打赏
  • 举报
回复
大家快帮我想想办法呀!

分不够可以再加哪!
cctv6012cn 2004-07-27
  • 打赏
  • 举报
回复
帮你顶一下
zhxfzhxf1 2004-07-27
  • 打赏
  • 举报
回复
up
ghtghtmalone 2004-07-27
  • 打赏
  • 举报
回复
一楼,顶

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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