⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.~pas

📁 一个托盘效果源码
💻 ~PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ShellAPI, AppEvnts, StdCtrls, Menus,shellapi;

  const WM_NID = WM_User + 1000;
type
  TForm1 = class(TForm)
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    Label1: TLabel;
    pm1: TPopupMenu;
    mniN3: TMenuItem;
    mniN4: TMenuItem;
    procedure FormDestroy(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure mniN3Click(Sender: TObject);
    procedure mniN4Click(Sender: TObject);
  private
    { Private declarations }
    procedure SysCommand(var SysMsg: TMessage); message WM_SYSCOMMAND;
     procedure WMNID(var msg:TMessage); message WM_NID;

  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  NotifyIcon: TNotifyIconData;
implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.SysCommand(var SysMsg: TMessage);
begin
  case SysMsg.WParam of
    SC_MINIMIZE: // 当最小化时
    begin
      SetWindowPos(Application.Handle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_HIDEWINDOW);
      Hide; // 在任务栏隐藏程序
      // 在托盘区显示图标
      with NotifyIcon do
      begin
        cbSize := SizeOf(TNotifyIconData);
        Wnd := Handle;
        uID := 1;
        uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
        uCallBackMessage := WM_NID;
        hIcon := Application.Icon.Handle;
        szTip := '托盘程序';
      end;

      Shell_NotifyIcon(NIM_ADD, @NotifyIcon); // 在托盘区显示图标
    end;
  else
    inherited;
  end;

end;


procedure TForm1.WMNID(var msg: TMessage);
var
  mousepos: TPoint;
begin
  GetCursorPos(mousepos); //获取鼠标位置
  case msg.LParam of
    WM_LBUTTONUP: // 在托盘区点击左键后
    begin
      Form1.Visible := not Form1.Visible; // 显示主窗体与否

      Shell_NotifyIcon(NIM_DELETE, @NotifyIcon); // 显示主窗体后删除托盘区的图标
      SetWindowPos(Application.Handle, HWND_TOP, 0, 0, 0, 0, SWP_SHOWWINDOW); // 在任务栏显示程序
    end;

    WM_RBUTTONUP: PopupMenu1.Popup(mousepos.X, mousepos.Y); // 弹出菜单
  end;
end;


procedure TForm1.FormDestroy(Sender: TObject);
begin
  Shell_NotifyIcon(NIM_DELETE, @NotifyIcon); // 删除托盘图标
end;

procedure TForm1.N1Click(Sender: TObject);
begin
   Form1.Close;
end;

procedure TForm1.N2Click(Sender: TObject);
begin
 Form1.Visible := true; // 显示窗体
  SetWindowPos(Application.Handle, HWND_TOP, 0, 0, 0, 0, SWP_SHOWWINDOW);
  Shell_NotifyIcon(NIM_DELETE, @NotifyIcon); // 删除托盘图标
   end;
procedure TForm1.FormCreate(Sender: TObject);
begin
AnimateWindow(Handle,1000,AW_CENTER);//窗口由小变大
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
AnimateWindow   (Handle,   400,   AW_HIDE   or   AW_BLEND);//窗口渐渐消失
end;

procedure TForm1.mniN3Click(Sender: TObject);
begin
   Form1.Close;
end;

procedure TForm1.mniN4Click(Sender: TObject);
begin
  shellexecute(handle,'open','http://www.aheasy.cn',nil,nil,SW_show);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -