1. 程式人生 > >vC++ 系統托盤圖示實現

vC++ 系統托盤圖示實現

  1. LRESULT ***Frame/*or Dialog*/::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)     
  2. {  
  3.  switch(message){  
  4.   case MYWM_NOTIFYICON:     
  5.    //如果是使用者定義的訊息  
  6.    if(lParam==WM_LBUTTONDBLCLK)  
  7.    {  
  8.     //滑鼠雙擊時主窗口出現  
  9.     AfxGetApp()->m_pMainWnd->ShowWindow(SW_SHOW);  
  10.    }  
  11.    else if(lParam==WM_RBUTTONDOWN){     
  12.     //滑鼠右鍵單擊彈出選單  
  13.     CMenu menu;  
  14.     menu.LoadMenu(IDR_RIGHT_MENU);     
  15.     //載入事先定義的選單  
  16.     CMenu* pMenu=menu.GetSubMenu(0);  
  17.     CPoint pos;  
  18.     GetCursorPos(&pos);  
  19.     pMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,pos.x,pos.y,AfxGetMainWnd());  
  20.    }  
  21.    break;  
  22.   case WM_SYSCOMMAND:     
  23.    //如果是系統訊息  
  24.         switch(wParam){ 
  25.           case SC_MINIMIZE: 
  26.               //接收到最小化訊息時主視窗隱藏  
  27.               ShowWindow(SW_HIDE);  
  28.               return 0; 
  29.               break; 
  30.           case SC_CLOSE : 
  31.               ::Shell_NotifyIcon(NIM_DELETE,&m_nid); //關閉時刪除系統托盤圖示 
  32.               break; 
  33.         }  
  34.    break;  
  35.  }  
  36.  return CFrameWnd/*or CDialog*/::WindowProc(message, wParam, lParam);  //其實就是呼叫父類的訊息處理函式