如何用鼠标左键也能弹出popupmenu菜单(50分)

  • 主题发起人 主题发起人 cowboy738
  • 开始时间 开始时间
C

cowboy738

Unregistered / Unconfirmed
GUEST, unregistred user!
各种大鸟:请问如何在一个按钮控件上比如speedbutton
用鼠标左键也能弹出popupmenu菜单,达到右键相同功能。

另外我的query控件为什么况不能使用这个语句:query.refresh;
 
getcursorpos();获得鼠标位置,tpoint.x,tpoint.y
popupmenu.popup(tpoint.x,tpoint.y);谈出菜单
 
一、将DROPDOWNMENU设为你的POPMENU就OK了。
二、检测鼠标的MOUSEDOWN事件,如果是左键,则人工传递右键点击消息。
 
有以前的一段小代码,供你参考:
procedure TForm1.BitBtn1Click(Sender: TObject);
var p:tpoint;
begin
p.x:=BitBtn1.Left;
p.y:=BitBtn1.top+bitbtn1.Height;
p:=clienttoscreen(p);
PopupMenu1.Popup(p.x,p.y);
end;
 
我觉得可以用SENDMESSAGE(HANDLE,MESSAGE,,)这个函数发送一个鼠标右键电击消息到控件,
然后POPUPMENU肯定就出来了,快。
 
在按钮上左键弹出菜单,那么点击事件怎么办? 如果不管的话可以用OnClick事件。

Refresh的问题,原因是有些数据库系统不支持ReFresh(好像所有的文件型数据库都不支持)
 
鼠标左键也能弹出popupmenu菜单,有的控件能实现这个功能,如果用一般的控件来实现可以这样:
窗体上放一个popupmenu1,一个Button1,设置Button1的OnClick事件:
popupmenu1.popup(mouse.CursorPos.x,mouse.CursorPos.y);
这就行了,我在D5下通过
 
popupmenu1.Popup(mouse.CursorPos.x,mouse.CursorPos.y);
一切ok
 
[?]大鸟们,使用popupmenu1.popup(mouse.cursorpos.x,mouse.cursorpos.y);
的确没有问题使用sendmessage()我怎么也没有试验成功。。。。
如有那位知道用法请告之,加分。。。感谢。。。
 
非常感谢。。。
 

Similar threads

D
回复
0
查看
825
DelphiTeacher的专栏
D
D
回复
0
查看
831
DelphiTeacher的专栏
D
D
回复
0
查看
664
DelphiTeacher的专栏
D
S
回复
0
查看
816
SUNSTONE的Delphi笔记
S
S
回复
0
查看
733
SUNSTONE的Delphi笔记
S
后退
顶部