抢分问题。快来抢分。需要代码支持 如果何我的程序最小化后不显示在任务栏。只显示在右下角系统栏一个小图标呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在csdn上搜索,好像有这样的帖子 转贴const WM_MYTRAYICONCALLBACK = WM_USER + 1000;type TForm1 = class(TForm) ... n_MainFromDispOrHide: TMenuItem; private { Private declarations } MyTrayIcon : TNotifyIconData; //定义一个托盘图标的类 procedure TrayShow(Sender: TObject); procedure WMMyTrayIconCallBack(var Msg : TMessage); //处理点击托盘图标的事件 message WM_MYTRAYICONCALLBACK; procedure n_MainFromDispOrHideClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); ...end;procedure TForm1.TrayShow(Sender: TObject);//当点击托盘图标时显示或隐含主窗体begin TrayBarPopMenu.AutoPopup:=False; //设定 TNotifyIconData 的记录长度 MyTrayIcon.cbSize :=SizeOf(tnotifyicondata); //确定调用程序的窗体句柄 MyTrayIcon.Wnd :=Handle; //确定图标的 uID MyTrayIcon.uID :=1; //设定显示标记 MyTrayIcon.uFlags :=NIF_ICON or NIF_TIP or NIF_MESSAGE; //用户自定义消息 MyTrayIcon.uCallbackMessage := WM_MYTRAYICONCALLBACK; //托盘图标的句柄 MyTrayIcon.hIcon := Application.Icon.Handle; //托盘图标的提示信息 MyTrayIcon.szTip :='定时导数据程序'; //向托盘中添加图标 Shell_NotifyIcon(NIM_ADD,@mytrayicon);end;procedure TForm1.WMMyTrayIconCallBack(var Msg: TMessage);//处理点击托盘图标的事件,根据 WM_MOUSEMOVE 消息的不同情况产生不同的回应var CursorPos : TPoint;begin TrayBarPopMenu.AutoPopup:=False; case Msg.lParam of //左键按下 WM_LBUTTONDOWN : begin application.MainForm.BringToFront; //窗体置前 end; //左键双击 WM_LBUTTONDBLCLK : begin //窗体隐含或显示 Application.MainForm.Visible := not Application.MainForm.Visible; SetForegroundWindow(Application.Handle); end; //右键按下 WM_RBUTTONDOWN : begin //显示弹出菜单 GetCursorPos(CursorPos); TrayBarPopMenu.Popup(CursorPos.x,CursorPos.y); end; end//caseend;procedure TForm1.n_MainFromDispOrHideClick(Sender: TObject);begin if Application.MainForm.Visible then begin if FormStep1.Showing Then FormStep1.Hide; if FormStep2.Showing Then FormStep2.Hide; Application.MainForm.Hide; n_MainFromDispOrHide.Caption :='显示主窗体'; end else begin Application.MainForm.Show; n_MainFromDispOrHide.Caption :='隐藏主窗体'; end;end;procedure TForm1.FormCreate(Sender: TObject);begin SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);//程序不在任务栏上显示 TrayShow(Application.MainForm);//显示图标end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin Shell_NotifyIcon(NIM_DELETE, @MyTrayIcon);//删除托盘图标end; 有个控件,可以用,TCoolTrayIcon 我也用TCoolTrayIcon,你可以在网上找一下很好用还可以自动变换图标. 同意 angle097113(深思不解) !!!!! QReport的Column Header里的东西为什么显示不出来? toolbar实现类似windows的任务栏 SetWindowsHookEx 返回错误1813 delphi7 序列号无效 如何把两个日期相减得到天数 如何获得FTP中的文件列表,包括子文件夹。 sql+delphi 问题!!!!!! 如何将TreeView控件与数据库连接? 我有两个账号,怎么把不用那个账号的分全部给新的那个?谢谢 能否通过Tmsg 的Wparam 和 Lparam 来判断按下组合肩(如 Ctrl + F11) 菜鸟菜问题: 一个数据库操作的类
const WM_MYTRAYICONCALLBACK = WM_USER + 1000;type
TForm1 = class(TForm)
...
n_MainFromDispOrHide: TMenuItem;
private
{ Private declarations }
MyTrayIcon : TNotifyIconData; //定义一个托盘图标的类
procedure TrayShow(Sender: TObject);
procedure WMMyTrayIconCallBack(var Msg : TMessage); //处理点击托盘图标的事件
message WM_MYTRAYICONCALLBACK;
procedure n_MainFromDispOrHideClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
...
end;procedure TForm1.TrayShow(Sender: TObject);
//当点击托盘图标时显示或隐含主窗体
begin
TrayBarPopMenu.AutoPopup:=False;
//设定 TNotifyIconData 的记录长度
MyTrayIcon.cbSize :=SizeOf(tnotifyicondata);
//确定调用程序的窗体句柄
MyTrayIcon.Wnd :=Handle;
//确定图标的 uID
MyTrayIcon.uID :=1;
//设定显示标记
MyTrayIcon.uFlags :=NIF_ICON or NIF_TIP or NIF_MESSAGE;
//用户自定义消息
MyTrayIcon.uCallbackMessage := WM_MYTRAYICONCALLBACK;
//托盘图标的句柄
MyTrayIcon.hIcon := Application.Icon.Handle;
//托盘图标的提示信息
MyTrayIcon.szTip :='定时导数据程序';
//向托盘中添加图标
Shell_NotifyIcon(NIM_ADD,@mytrayicon);
end;procedure TForm1.WMMyTrayIconCallBack(var Msg: TMessage);
//处理点击托盘图标的事件,根据 WM_MOUSEMOVE 消息的不同情况产生不同的回应
var
CursorPos : TPoint;
begin
TrayBarPopMenu.AutoPopup:=False;
case Msg.lParam of
//左键按下
WM_LBUTTONDOWN : begin
application.MainForm.BringToFront; //窗体置前
end;
//左键双击
WM_LBUTTONDBLCLK : begin //窗体隐含或显示
Application.MainForm.Visible := not Application.MainForm.Visible;
SetForegroundWindow(Application.Handle);
end;
//右键按下
WM_RBUTTONDOWN : begin //显示弹出菜单
GetCursorPos(CursorPos);
TrayBarPopMenu.Popup(CursorPos.x,CursorPos.y);
end;
end//case
end;procedure TForm1.n_MainFromDispOrHideClick(Sender: TObject);
begin
if Application.MainForm.Visible then
begin
if FormStep1.Showing Then FormStep1.Hide;
if FormStep2.Showing Then FormStep2.Hide;
Application.MainForm.Hide;
n_MainFromDispOrHide.Caption :='显示主窗体';
end
else
begin
Application.MainForm.Show;
n_MainFromDispOrHide.Caption :='隐藏主窗体';
end;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);//程序不在任务栏上显示
TrayShow(Application.MainForm);//显示图标
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Shell_NotifyIcon(NIM_DELETE, @MyTrayIcon);//删除托盘图标
end;