我写了下面的代码 if (message.LParam=wm_rbuttondown) then SetForegroundWindow(Self.Handle); GetCursorPos(p); pm.Popup(p.X,p.Y); pm是我预先编好的一个弹出菜单,可是在程序运行后,当鼠标位置在图标上时(并未点击),pm的菜单就出现,并不停地闪烁,无法控制,只有当鼠标移开后,才能正常显示,请帮忙解决。
if (message.LParam=wm_rbuttondown) then begin SetForegroundWindow(Self.Handle); GetCursorPos(p); pm.Popup(p.X,p.Y); end;
自定义消息,用于处理用户在图标上点击鼠标的事件 mousemsg = wm_user + 1 然后增加PopupMenu1控件,编辑要显示的菜单. 后添加代码 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)); end;
SetForegroundWindow(Self);
PopupMenu.Popup(p.x,p.y);弹出菜单
if (message.LParam=wm_rbuttondown) then
SetForegroundWindow(Self.Handle);
GetCursorPos(p);
pm.Popup(p.X,p.Y);
pm是我预先编好的一个弹出菜单,可是在程序运行后,当鼠标位置在图标上时(并未点击),pm的菜单就出现,并不停地闪烁,无法控制,只有当鼠标移开后,才能正常显示,请帮忙解决。
begin
SetForegroundWindow(Self.Handle);
GetCursorPos(p);
pm.Popup(p.X,p.Y);
end;
mousemsg = wm_user + 1
然后增加PopupMenu1控件,编辑要显示的菜单.
后添加代码
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));
end;