当程序最小化成图标时,怎样生成右键弹出菜单并响应菜单命令?(50分)

  • 主题发起人 主题发起人 lipingcool
  • 开始时间 开始时间
L

lipingcool

Unregistered / Unconfirmed
GUEST, unregistred user!
&nbsp; &nbsp;我将程序最小化成图标放在托盘区时,不知道怎样生成右键弹出菜单<br>并响应菜单命令,就象"金山词霸"那样?各位大虾请赐教!<br>
 
使用控件,你的mail地址我找不到,我怎么给你
 
<br>&nbsp; &nbsp; procedure WMMIDASIcon(var Message: TMessage); message WM_MIDASICON;<br><br>procedure TForm1.WMMIDASIcon(var Message: TMessage);<br>var<br>&nbsp; pt: TPoint;<br>begin<br>&nbsp; case Message.LParam of<br>&nbsp; &nbsp; WM_RBUTTONUP:<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; if not Visible then<br>&nbsp; &nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; &nbsp; SetForegroundWindow(Handle);<br>&nbsp; &nbsp; &nbsp; &nbsp; GetCursorPos(pt);<br>&nbsp; &nbsp; &nbsp; &nbsp; PopupMenu.Popup(pt.x, pt.y);<br>&nbsp; &nbsp; &nbsp; end else<br>&nbsp; &nbsp; &nbsp; &nbsp; SetForegroundWindow(Handle);<br>&nbsp; &nbsp; end;<br>&nbsp; &nbsp; WM_LBUTTONDBLCLK:<br>&nbsp; &nbsp; &nbsp; if Visible then<br>&nbsp; &nbsp; &nbsp; &nbsp; SetForegroundWindow(Handle)<br>&nbsp; &nbsp; &nbsp; else<br>&nbsp; &nbsp; &nbsp; &nbsp; show;<br>&nbsp; end;<br>end;<br>
 
我的mail地址是: lipingcool@263.net &nbsp;请 tian7009多指教!<br>难道用代码很难实现吗?谁能帮帮我?<br><br>
 
to liujinghu_ty:<br>我将你贴出来的代码进行调试,但系统不认"WM_MIDASICON",该怎么办?
 
在 uses...type 间加<br>const<br>&nbsp; WM_MIDASICON &nbsp; &nbsp;= WM_USER + 1;<br>&nbsp; UI_INITIALIZE &nbsp; = WM_MIDASICON + 1;<br><br>响应菜单命令:<br>&nbsp; &nbsp;在 PopMenu 正常成立事件即可。<br>
 
在 PopMenu 正常处理事件即可
 
还是用控件简单啦。只要响应 onclick 就可<br><br>如果是自己写得向系统区添加图标,还是用liujinghu_ty的办法了
 
使用空间,<br>vcl.vclxx.com
 
&nbsp; &nbsp;我已经解决了问题,虽然liujinghu_ty的方法不能完全解决问题,但我将<br>liujinghu_ty的部分代码放到自定义的<br>procedure WMBarIcon(var Message:TMessage);message WM_BARICON;<br>中去,判断鼠标的左、右键,然后做相应的动作,于是大功告成!<br>&nbsp; &nbsp; 这是我第一次在大富翁提问题,各位的帮助使我解决了问题,多谢了!
 
多人接受答案了。
 
后退
顶部