有那位大师可以帮忙?有关Windows状态区的编程

ishere 2000-10-09 12:29:00
我用delphi做了个象金山词霸一样的状态栏图标,用鼠标左键点击可显示关闭窗体,用鼠标右键点击可它弹出一个菜单,现在的问题是怎样设置菜单的位置,当菜单弹出的时候怎样让它在鼠标左键未点中的时候自动消失。
非常着急,请尽快给予指点!!!
...全文
156 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
suzg 2000-10-14
  • 打赏
  • 举报
回复
两种方法:
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:要弹出的菜单

-----------------
希望对你有帮助。

suzg 2000-10-14
  • 打赏
  • 举报
回复
两种方法:
1。用第三方控件,如http://www.csdn.net/dev/Delphi/Samples/hotkeys.zip中提供的,解开后在Source\Components\SheAr.dpk,有原码,很好用,并且支持动画图标。

2。在弹出菜单时激活你的窗体(Show),原因好象是Delphi的Bug.

希望对你有帮助。
suzg 2000-10-14
  • 打赏
  • 举报
回复
两种方法:
1。用第三方控件,如http://www.csdn.net/dev/Delphi/Samples/hotkeys.zip中提供的,解开后在Source\Components\SheAr.dpk,有原码,很好用,并且支持动画图标。

2。在弹出菜单时激活你的窗体(Active),原因好象是Delphi的Bug.

希望对你有帮助。

johnpei 2000-10-13
  • 打赏
  • 举报
回复
我可以帮你!相信吗?
netsong 2000-10-13
  • 打赏
  • 举报
回复
"当菜单弹出的时候怎样让它在鼠标左键未点中的时候": 指的是弹出菜单失去焦点吗?

5,388

社区成员

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

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