C++ Builder 實現托盤表徵圖

來源:互聯網
上載者:User
在工程檔案裡面添加紅色的代碼.能夠實現隱藏,但如果要在托盤顯示表徵圖,就應該看看下面的其它代碼,我沒有用TrayIcon控制項.
對托盤表徵圖的操作,這裡沒有給出代碼.如果想要一個完整的例子,可以給我來信:lwqcny@163.com

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
  try
  {
    Application->Initialize();
    Application->Title = "鍵盤監控器";
    Application->CreateForm(__classid(TForm1), &Form1);
    //增加兩行,保證程式開始就隱藏視窗
    ShowWindow(Application->Handle,SW_HIDE);
    Application->ShowMainForm=false;

    Application->Run();
  }
  catch (Exception &exception)
  {
    Application->ShowException(&exception);
  }
//========================================================== =======
//========================================================== =======
void __fastcall TForm1::FormCreate(TObject *Sender)
{
//調用RegisterWindowMessage()函數來建立一個獨一無二的訊息編號,以確保沒有衝突
ugIconMessage=RegisterWindowMessage("IconNotify");//

AddIcon();//添加托盤表徵圖
Form1->Visible=false;//隱藏主視窗
}
//---------------------------------------------------------- -----------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
DeleteIcon();
}
//---------------------------------------------------------- ---------
void TForm1::AddIcon()//建立托盤區表徵圖,這個函數自己定義
{
NOTIFYICONDATA icondata;//申請一個托盤區表徵圖的結構變數
memset(&icondata,0,sizeof(icondata));//將結構變數的內容清零
icondata.cbSize=sizeof(icondata);
icondata.hWnd=Handle;//取得當前視窗的控制代碼
strncpy(icondata.szTip,"鍵盤監控器\n作者:seeker\n警告,不得用於非法用途!",sizeof(icondata.szTip));//輸入滑鼠經過該表徵圖時的提示字串
icondata.uID=Icon_ID;
icondata.hIcon=Application->Icon->Handle;//將程式表徵圖作為托盤區的表徵圖,當然你可以指定其它的,如上一句
icondata.uCallbackMessage=ugIconMessage;//取得回調資訊變數,即表徵圖上的操作訊息
icondata.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;//當結構變數中成員hIcon、uCallbackMessage與szTip 出錯時將給出錯誤標誌
Shell_NotifyIcon(NIM_ADD,&icondata);//調用函數Shell_NotifyIcon()在工作列布告區產生或刪除一個表徵圖
}                //NIM_ADD 表示產生,NIM_DELETE表示刪除
//---------------------------------------------------------- ------------------
void TForm1::DeleteIcon()//刪除工作列布告區表徵圖,這個函數自己定義
{
  NOTIFYICONDATA icondata;
  memset(&icondata,0,sizeof(icondata));
  icondata.cbSize=sizeof(icondata);
  icondata.hWnd=Handle;
  icondata.uID=Icon_ID;
  Shell_NotifyIcon(NIM_DELETE,&icondata);//刪除表徵圖
}
//---------------------------------------------------------- ---------------

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.