我有一個沒有任何任務欄圖示的系統托盤應用程式。現在大多數系統托盤圖示都是隱藏的,我想更輕松地訪問應用程式。
沒有使用 Application.FormCreate 創建的表單,因此 Delphi 無法顯示圖示本身。
即使沒有可用的可見表單,如何始終在任務欄上顯示正常的應用程式圖示?
我想捕捉這樣的點擊,當它被點擊時,我的自定義函式會顯示 GUI:
class procedure TTrayMain.HandleMessages(var Msg: TMsg; var Handled: Boolean);
begin
if (Msg.wparam = SC_RESTORE ) then begin
MenuPopup (popup,2);
Exit;
end;
uj5u.com熱心網友回復:
沒有視窗來表示,任務欄按鈕就不能存在。創建任務欄按鈕的方法只有3 種:
- 創建一個具有
WS_EX_APPWINDOW樣式的可見視窗 - 創建一個可見的頂級無主視窗
- 利用
ITaskbarList::AddTab()
所有這些都需要一個視窗。但是,這并不意味著用戶必須看到視窗。您可以創建一個寬度/高度設定為 0 的可見視窗(一些框架這樣做,因此沒有單個應用程式視窗擁有任務欄按鈕,但該按鈕可以顯示/隱藏整個應用程式),或將其移出螢屏。然后視窗可以根據需要回應狀態變化,例如通過任務欄按鈕。
否則,由于您的托盤應用程式可能有一個隱藏視窗來接收圖示通知,您可以嘗試將該視窗與ITaskbarList. 我只是不知道當用戶點擊按鈕時它是否真的會做任何有意義的事情。因此,請考慮將您的托盤應用程式更改為使用可見但不可見的通知視窗,然后它可以有一個任務欄按鈕而不涉及ITaskbarList.
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/424520.html
