給MFC程序添加通知區域圖標

 

給MFC程序添加通知區域圖標

 

       現在起來越多的程序都有一個通知區域圖標(托盤圖標),既美觀又方便。但是MFC不像C#一樣提供NotifyIcon控件,要實現通知區域圖標,就要自己做一個CTrayIcon類或者使用NOTIFYICONDATA結構。
       MSDN中關於NOTIFYICONDATA的介紹:
      http://msdn.microsoft.com/en-us/library/ms910625.aspx
       我在這裏記錄一下自己通過NOTIFYICONDATA實現MFC程序中的通知區域圖標的過程,既是分享,也方便以後自己查閱。


      1. 在CMainFrame類(或者是CXxxDlg類)中添加一個NOTIFYICONDATA的結構體變量:
           NOTIFYICONDATA m_ntIcon;


       並在CMainFrame的OnCreate函數中(或者是OnInitDialog)設置該變量:
           m_ntIcon.cbSize = sizeof(NOTIFYICONDATA);                           //該結構體變量的大小
           m_ntIcon.hIcon = AfxGetApp()->LoadIconA(IDR_MAINFRAME);  //圖標,通過資源ID得到
           m_ntIcon.hWnd = this->m_hWnd;                                                 //接收托盤圖標通知消息的窗口句柄
           char atip[128] = "a notify icon";                                                     //鼠標設上面時顯示的提示
           strcpy_s(m_ntIcon.szTip, 128, atip);             
           m_ntIcon.uCallbackMessage = MY_WM_NOTIFYICON;                //應用程序定義的消息ID號
           m_ntIcon.uFlags = NIF_MESSAGE|NIF_ICON|NIF_TIP;              //圖標的屬性:設置成員uCallbackMessage、hIcon、szTip有效
      

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章