天天看點

delphi實作托盤

如果自己從頭做的話,需要定義一個TNotifyIconData類型變量,這個變量定義在 ShellAPI 單元中。

需要設定這個變量的這幾個值。 

  _NOTIFYICONDATAA = record

    cbSize: DWORD;

    Wnd: HWND;

    uID: UINT;

    uFlags: UINT;

    uCallbackMessage: UINT;

    hIcon: HICON;

    szTip: array [0..63] of AnsiChar;

  end;

例如:

const WM_NID = WM_USER + 100;

procedure WMNID(var msg: TMessage); message WM_NID;

 with NOtifyIcon do

begin

cbsize := SIzeof(TNOtifyIconData);  // 記錄大小

wnd := self; //窗體句柄

uID := 1; // 圖示iD

        UFLagS :=  NIF_MESSAGE      or NIF_ICON or NIF_ TIP;

       ucallbackMessage:= WM_NID; // 自定義消息

      Hicon := application.icon.handle;

     szTIP := 'pxb';

  {$EXTERNALSYM NIF_MESSAGE}

  NIF_MESSAGE     = $00000001;

  {$EXTERNALSYM NIF_ICON}

  NIF_ICON        = $00000002;

  {$EXTERNALSYM NIF_TIP}

  NIF_TIP         = $00000004;

end;

shell_notifyICON(sss.add,@notifyicno);

case msg.lparams of

  WM_RButtonClick:

begin

end;

WM_LButtonDBclidk:

begin

end;

end;

可以使用第三方控件,可以設定 showballMessage();顯示氣泡提示。通過設定,可以很快的做出一個托盤應用。 TZTRayICON;