怎樣是程式顯示在系統托盤中

來源:互聯網
上載者:User
TIcon *MyIcon = new TIcon;
MyIcon->LoadFromFile(ExtractFilePath(ParamStr(0))+/"////Day 1.ico/");

TNotifyIconData IconData;
//是自訂的NotifyIcon變數的大小
IconData.cbSize = sizeof(IconData);
//希望托盤程式產生的訊息有哪個表單來處理就讓Wnd指向那個表單控制代碼
IconData.hWnd = MainForm->Handle;
//區別其他系統托盤小程式的ID
IconData.uID = 100;
//托盤表徵圖的控制代碼,根據這個控制代碼你就可以增加、修改、刪除表徵圖
IconData.hIcon = MyIcon->Handle;
/*uFlags : 一個標誌位,它表示當前所建立的托盤程式具有哪些性質
  NIF_ICON 表示當前所設定的表徵圖(即hIcon的值)是有效
  NIF_MESSAGE 表示當前所設定的系統訊息(即uCallBackMessage的值)是有效
  NIF_TIP 表示當前所設定的提示條(即szTip的值)是有效 
*/
IconData.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP;

/* uCallBackMessage : 這是7個部分裡面最重要的一個。這裡指定一個回調訊息,也就是說這裡定義一個訊息名,當你單擊或者右擊托盤表徵圖的時候就會向你在Wnd所指向的表單發送一個在uCallBackMessage中定義的訊息名,然後你在程式中定義一個訊息出來函數來處理這個訊息。這樣就把Windows關於訊息的整套流程都處理好了*/
IconData.uCallbackMessage = WM_USER+100;
//szTip就是當你的滑鼠放到工作列托盤的小表徵圖上的時候彈出來的提示資訊
strcpy(IconData.szTip,/"網址管理專家 單擊左鍵顯示表單/");
Shell_NotifyIcon(NIM_ADD,&IconData);
SetWindowLong(Application->Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);

同時在主表單中TIcon對象建立訊息事件:
  public:
        void virtual __fastcall IconClick(TMessage& Msg);
        bool SystemShutDown(UINT uFlag);
        BEGIN_MESSAGE_MAP
          MESSAGE_HANDLER(WM_USER+100,TMessage,IconClick)
        END_MESSAGE_MAP(TForm)
//-----------------------------------------------------------------
void __fastcall TMainForm::IconClick(TMessage& Msg)
{
  TPoint po;
  if(Msg.LParam==WM_LBUTTONDOWN)
  {
    this->Show();
  }
  if(Msg.LParam==WM_RBUTTONUP)
  {
    GetCursorPos(&po); //擷取當前滑鼠的座標值
    AdvPopupMenu1->Popup(po.x,po.y);
  }     
}
//-------------------------------------------------------------------

結束時:
TNotifyIconData IconData;
IconData.cbSize = sizeof(IconData);
IconData.hWnd = MainForm->Handle;
IconData.uID = 100;
Shell_NotifyIcon(NIM_DELETE,&IconData);
delete MyIcon; 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.