托盘弹出菜单问题?? 我写了个托盘程序,我定义了一个消息处理了左键双击和右键单击消息。弹出菜单是正常了。可是在弹出菜单之后我的鼠标点击不在弹出菜单窗口时,它不能自动关闭。 但我看了人家的是可以的。 各位老大怎么解决着个问题啊?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在弹出菜单之前加上SetForegroundWindow(Handle); 也就是在你处理托盘的WM_RBUTTONUP消息里面 SetForegroundWindow(Handle);TO lonoaer() : Handle 指的是哪窗口的句柄? //我查了网上的应该 lonoaer() 是正确的>procedure TMainForm.MyTrayMessage(var message: Tmessage);var //托盘消息处理事件 CursorPos : TPoint;begin //在这里处理用户点击托盘图标事件,可以根据WM_MOUSEMOVE消息的不同情况产生不同的回应,例如区别对待单击和双击等等 case message.lParam of WM_RBUTTONDOWN : begin GetCursorPos(CursorPos); SetForegroundWindow(handle); //此句作用是当程序失去焦点时,弹出菜单也随之消失。 Application.ProcessMessages; //取得光标当前位置 TrayPopMenu.Popup( CursorPos.x ,CursorPos.y ); PostMessage(Application.MainForm.Handle, WM_NULL, 0, 0); end; end;end; lonoaer() 正确,就是这样. OK 散分 请问一个第三方的COM服务器关闭的时候,我怎么捕获消息呢,急求 delphi7 intraweb开发 导出excel问题?????? 高手救命,Dspack开发视频播放,怎样从指定的时间开始播放 半年多沒有安裝D6了竟然不知道Delphi 6.0 的sn了 关于http及文件操作的编程 高手请进 有这样的问题看怎么解决? 请教一个报表的问题 richview中文换行乱码问题怎样解决? 怎么写保护? 我决定休学一年,,,,浪费时间吗? 300分求改扑克牌组件(AVRORA组件)! CS开发,优厚报酬
SetForegroundWindow(Handle);
TO lonoaer() : Handle 指的是哪窗口的句柄?
procedure TMainForm.MyTrayMessage(var message: Tmessage);
var //托盘消息处理事件
CursorPos : TPoint;
begin
//在这里处理用户点击托盘图标事件,可以根据WM_MOUSEMOVE消息的不同情况产生不同的回应,例如区别对待单击和双击等等
case message.lParam of
WM_RBUTTONDOWN :
begin
GetCursorPos(CursorPos);
SetForegroundWindow(handle);
//此句作用是当程序失去焦点时,弹出菜单也随之消失。
Application.ProcessMessages;
//取得光标当前位置
TrayPopMenu.Popup( CursorPos.x ,CursorPos.y );
PostMessage(Application.MainForm.Handle, WM_NULL, 0, 0);
end;
end;end;