两种方法:
1。用第三方控件,如http://www.csdn.net/dev/Delphi/Samples/hotkeys.zip中提供的,解开后在Source\Components\SheAr.dpk,有原码,很好用,并且支持动画图标。2。在弹出菜单时激活你的窗体(Active),原因好象是Delphi的Bug.希望对你有帮助。
1。用第三方控件,如http://www.csdn.net/dev/Delphi/Samples/hotkeys.zip中提供的,解开后在Source\Components\SheAr.dpk,有原码,很好用,并且支持动画图标。2。在弹出菜单时激活你的窗体(Active),原因好象是Delphi的Bug.希望对你有帮助。
1。用第三方控件,如http://www.csdn.net/dev/Delphi/Samples/hotkeys.zip中提供的,解开后在Source\Components\SheAr.dpk,有原码,很好用,并且支持动画图标。2。在弹出菜单时激活你的窗体(Show),原因好象是Delphi的Bug.希望对你有帮助。
1。用第三方控件,很多,如http://www.csdn.net/dev/Delphi/Samples/hotkeys.zip中提供的,解开后在Source\Components\SheAr.dpk,有原码,很好用,并且支持动画图标。2。
位置:
定义 Point:TPoint;
调用GetCursorPos(Point);
Point.x, Point.y即为鼠标相对于屏幕的坐标,可用此坐标直接设置菜单位置。菜单问题:
在弹出菜单前激活窗体(用Windows API:SetForeGroundWindow),原因好象是Delphi的Bug(见《Delphi 3 从入门到精通》,电子工业出版社).代码如下:
if Screen.ActiveForm<>nil then
SetForeGroundWindow(Screen.ActiveForm.Handle)
else
SetForeGroundWindow(Form1.Handle); //Form1:当前窗体 GetCursorPos(Point);
PopupMenu.Popup(Point.X, Point.Y); //PopupMenu:要弹出的菜单-----------------
希望对你有帮助。