最小化到系统托盘区VC中使程序最小化到系统托盘区//定义托盘图标结构体NOTIFYICONDATAnid;#defineWM_ICONNOTIFYWM_USER+909//图标响应消息(lParam)#defineID_TASKBARICON100//参数(wParam)//初始化系统托盘图标voidCMainFrame::OnBtnMinimize(){//=sizeof(NOTIFYICONDATA);=m_hWnd;;=ID_TASKBARICON;//=NIF_ICON|NIF_MESSAGE|NIF_TIP;=WM_ICONNOTIFY;//点击托盘图标系统发出的消息(即发出的消息中的lParam参数)=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(M));strcpy(,"");Shell_NotifyIcon(NIM_ADD,&nid);//加入图标ShowWindow(SW_HIDE);//隐藏窗体}//手工添加消息处理函数afx_msgLRESULTOnNotifyIcon(WPARAMwParam,LPARAMlParam);ON_MESSAGE(WM_ICONNOTIFY,CMainFrame::OnNotifyIcon)//双击系统托盘,使程序正常化LRESULTCMainFrame::OnNotifyIcon(WPARAMwParam,LPARAMlParam){POINTrpoint;CMenutmenu;GetCursorPos(&rpoint);//如果在托盘图标上双击左键if((wParam==ID_TASKBARICON)&&(lParam==WM_LBUTTONDBLCLK)){ShowWindow(SW_SHOW);//显示窗体Shell_NotifyIcon(NIM_DELETE,&nid);//删除系统托盘图标}//如果在托盘图标上双击右键if((wParam==ID_TASKBARICON)&&(lParam==WM_RBUTTONDOWN)){(IDR_MAINFRAME);//加载系统主菜单SetForegroundWindow();//(0)->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,,,this);//在点击图标处弹出系统菜单的第一项}return0;}voidCMYDlg::toTray(BOOLshow){NOTIFYICONDATApnid;=(DWORD)sizeof(NOTIFYICONDATA);//=m_hWnd;//=(UINT)m_hIcon;//=NIF_ICON|NIF_MESSAGE|NIF_TIP;/*图标有效|自定义消息有效|鼠标指向显示文字有效*/=WM_SHOWTASK;//=m_hIcon;//图标句柄strcpy(,"这是我的托盘图标");//鼠标指到那所显示的文字if(show){Shell_NotifyIcon(NIM_ADD,&pnid);//在托盘区添加图标ShowWindow(SW_HIDE);//隐藏主窗口}else{Shell_NotifyIcon(NIM_DELETE,&pnid);//删除托盘图标ShowWindow(SW_SHOW);//显示主窗口}},SendMsgDlg::mand(UINTnID,LPARAMlParam){if((nID&0xFFF0)==IDM_ABOUTBOX){CAboutDlgdlgAbout;();}else{CDialog::mand(nID,lParam);}/************************************************************************//*AddByHzf最小化时添加系统托盘*//********************************************************************
最小化到系统托盘区 来自淘豆网www.taodocs.com转载请标明出处.