VC中使程式最小化到系統托盤區

來源:互聯網
上載者:User

  1. //定義托盤表徵圖結構體
  2. NOTIFYICONDATA nid; 
  3. #define WM_ICONNOTIFY  WM_USER + 909 //表徵圖響應訊息(lParam)
  4. #define ID_TASKBARICON 100           //參數(wParam)
  5. //初始化系統托盤表徵圖   
  6. void CMainFrame::OnBtnMinimize() 
  7. {    
  8.     //初始化系統托盤表徵圖   
  9.     nid.cbSize = sizeof(NOTIFYICONDATA);   
  10.     nid.hWnd = m_hWnd;;   
  11.     nid.uID = ID_TASKBARICON; //發出的訊息中的wParam參數   
  12.     nid.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP;   
  13.     nid.uCallbackMessage = WM_ICONNOTIFY; //點擊托盤表徵圖系統發出的訊息(即發出的訊息中的lParam參數)  
  14.     nid.hIcon = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_HIS_COMM));   
  15.     strcpy(nid.szTip, "曆史資料擷取軟體 1.0.3");   
  16.     Shell_NotifyIcon(NIM_ADD, &nid); //加入表徵圖
  17.     ShowWindow(SW_HIDE); //隱藏表單
  18. //手工添加訊息處理函數
  19. afx_msg LRESULT OnNotifyIcon(WPARAM wParam, LPARAM lParam); 
  20. ON_MESSAGE(WM_ICONNOTIFY,CMainFrame::OnNotifyIcon) 
  21. //雙擊系統托盤,使程式正常化
  22. LRESULT CMainFrame::OnNotifyIcon(WPARAM wParam, LPARAM lParam)
  23. {
  24.     POINT rpoint;   
  25.     CMenu tmenu;   
  26.     GetCursorPos(&rpoint); 
  27.     //如果在托盤表徵圖上雙擊左鍵  
  28.     if ( ( wParam == ID_TASKBARICON ) && ( lParam == WM_LBUTTONDBLCLK ) )   
  29.     {   
  30.         ShowWindow(SW_SHOW); //顯示表單   
  31.         Shell_NotifyIcon(NIM_DELETE, &nid); //刪除系統托盤表徵圖   
  32.     }
  33.     //如果在托盤表徵圖上雙擊右鍵
  34.     if ( ( wParam == ID_TASKBARICON ) && ( lParam == WM_RBUTTONDOWN ) )   
  35.     {         
  36.         tmenu.LoadMenu(IDR_MAINFRAME); //載入系統主菜單  
  37.         SetForegroundWindow(); //將程式置於案頭頂部   
  38.         tmenu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN |   TPM_RIGHTBUTTON,rpoint.x, rpoint.y, this); //在點擊表徵圖處彈出系統功能表的第一項  
  39.     }   
  40.     return 0;

 GIS導航網

聯繫我們

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