龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

用VC设计托盘图标程序(2)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
//用户定义的回调消息 CString szToolTip; szToolTip=_T("托盘图标实例"); _tcscpy(m_tnid.szTip, szToolTip); m_tnid.uID=IDR_MAINFRAME; HICON hIcon; hIcon=AfxGetApp()-〉LoadIcon(IDR_MAINFRAM

   //用户定义的回调消息

   CString szToolTip;

   szToolTip=_T("托盘图标实例");

   _tcscpy(m_tnid.szTip, szToolTip);

   m_tnid.uID=IDR_MAINFRAME;

   HICON hIcon;

   hIcon=AfxGetApp()-〉LoadIcon(IDR_MAINFRAME);

   m_tnid.hIcon=hIcon;

   ::Shell_NotifyIcon(NIM_ADD,&&m_tnid);

   if(hIcon)::DestroyIcon(hIcon);

   返回消息的ID应在主框架类的头函数中定义:

   #define MYWM_NOTIFYICON WM_USER+1

   为了处理图标返回消息,如鼠标左键双击、鼠标右键单击消息,我们重载WindowProc()函数。此外,我们还希望在主框架窗口最小化时图标不在任务栏的空白区出现,在此函数中同时作相应处理。

   LRESULT CMainFrame::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)

   {

   switch(message){

   case MYWM_NOTIFYICON:

   //如果是用户定义的消息

   if(lParam==WM_LBUTTONDBLCLK){

   //鼠标双击时主窗口出现

   AfxGetApp()-〉m_pMainWnd-〉ShowWindow(SW_SHOW);

   }

   else if(lParam==WM_RBUTTONDOWN){ //鼠标右键单击弹出选单

   CMenu menu;

   menu.LoadMenu(IDR_RIGHT_MENU); //载入事先定义的选单

精彩图集

赞助商链接