我在系统栏中做了一个图标,右键弹出菜单,弹出后如果我不想使用菜单怎么才能让我点一下桌面或其它程序就可以让菜单消失??
右键弹出菜单使用的程序如下 :procedure TForm1.mousemessage(var message: tmessage);
var
mousept: TPoint; //鼠标点击位置
begin
inherited;
if message.LParam = wm_rbuttonup then begin //用鼠标右键点击图标
getcursorpos(mousept); //获取光标位置
popupmenu1.popup(mousept.x, mousept.y);
//在光标位置弹出选单
end;
if message.LParam = wm_lbuttonup then begin //用鼠标左键点击图标
//显示应用程序窗口
ShowWindow(Handle, SW_SHOW);
//在任务栏上显示应用程序窗口
ShowWindow(Application.handle, SW_SHOW);
SetWindowLong(Application.Handle, GWL_EXSTYLE,
not (GetWindowLong(Application.handle, GWL_EXSTYLE)
or WS_EX_TOOLWINDOW AND NOT WS_EX_APPWINDOW));
form1.Show;
end;
message.Result := 0;
end;
右键弹出菜单使用的程序如下 :procedure TForm1.mousemessage(var message: tmessage);
var
mousept: TPoint; //鼠标点击位置
begin
inherited;
if message.LParam = wm_rbuttonup then begin //用鼠标右键点击图标
getcursorpos(mousept); //获取光标位置
popupmenu1.popup(mousept.x, mousept.y);
//在光标位置弹出选单
end;
if message.LParam = wm_lbuttonup then begin //用鼠标左键点击图标
//显示应用程序窗口
ShowWindow(Handle, SW_SHOW);
//在任务栏上显示应用程序窗口
ShowWindow(Application.handle, SW_SHOW);
SetWindowLong(Application.Handle, GWL_EXSTYLE,
not (GetWindowLong(Application.handle, GWL_EXSTYLE)
or WS_EX_TOOLWINDOW AND NOT WS_EX_APPWINDOW));
form1.Show;
end;
message.Result := 0;
end;
解决方案 »
- delphi 鼠标单击菜单如何知道是左键还是右键
- 一个关于对象的创建和释放的问题(tstrings)
- reportbuilder
- 100分求答案!求汉字加密、解密方法,最好有源码,我搜索了一些帖子,没有能解决的帖子,解密时有乱码!
- 想将一个单机版数据库应用程序改成网络版,修改了数据库的连接位置后,成功了,但有一个问题困扰着我,大侠们帮出出主意吧!
- 请教一个websnap的问题,高手请进!~~~~~~~~~~~~~~~~~~~~~~~~~~
- 在程序执行中为什么,Label1.caption的文字会不可见?请教!
- 高分!!!!!!!关于image及图像的应用问题。见着有份!
- help....有关于combobox的一个问题?
- 如何用delphi控制POS机打印问题
- 请各位大虾多多指教
- 怎样动态设置dbgrid
SetForegroundWindow(Application.Handle);
application.ProcessMessages;
SetForegroundWindow(Application.Handle);
PopupMenu1.Popup;会不行???