将程序最小化成图标

 
主要函数如下:
 
void CMyCaptureDlg::OnMinimun()
{
       ShowWindow(SW_HIDE);  
       m_boolWndHadShow = FALSE;
       this->PostMessage(MYWM_SHOWAPPICONIC);
}
 
void CMyCaptureDlg::OnClose()
{
       MyTaskBarDeleteIcon(GetSafeHwnd(),100);
       CDialog::OnClose();
}
 
void CMyCaptureDlg::OnMyIconNotify(WPARAM wParam,LPARAM lParam)
{
       UINT   nID;  
       UINT   uMouseMsg;    
       nID   =   (UINT)wParam;  
       uMouseMsg   =   (UINT)   lParam;    
       if(uMouseMsg == WM_LBUTTONDOWN)   //点???   
       {    
               if(m_boolWndHadShow)     //如果窗口已打?,?藏窗口   
                       ShowWindow(SW_HIDE);  
               else                             //否?,?示窗口   
                       ShowWindow(SW_SHOWNORMAL);  
               m_boolWndHadShow = ~m_boolWndHadShow;  
       }  
}
 
void CMyCaptureDlg::OnShowAppIconic(WPARAM wParam,LPARAM lParam)
{
       HICON   theIcon = LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_MAINICON));  
       MyTaskBarAddIcon(GetSafeHwnd(),100,theIcon, _T("Capture"));  
       ShowWindow(SW_HIDE);  
       m_boolWndHadShow = FALSE;
}
 
BOOL CMyCaptureDlg::MyTaskBarAddIcon(HWND hwnd,UINT uID,HICON hicon,LPSTR lpszTip)     
{     
       BOOL   res;
       NOTIFYICONDATA   tnid;
       tnid.cbSize   =   sizeof(NOTIFYICONDATA);
       tnid.hWnd   =   hwnd;
       tnid.uID   =   uID;
       tnid.uFlags   =   NIF_MESSAGE | NIF_ICON | NIF_TIP;
       tnid.uCallbackMessage   =   MYWM_NOTIFYICON;
       tnid.hIcon   =   hicon;
       if (lpszTip)
               lstrcpyn(tnid.szTip,   lpszTip,   sizeof(tnid.szTip));
       else
               tnid.szTip[0]   =   '/0';
       res   =   Shell_NotifyIcon(NIM_ADD,   &tnid);
       if   (hicon)
               DestroyIcon(hicon);
       return   res;
}
 
BOOL CMyCaptureDlg::MyTaskBarDeleteIcon(HWND    hwnd,   UINT   uID)    
{           
       BOOL   res;    
       NOTIFYICONDATA   tnid;    
       tnid.cbSize   =   sizeof(NOTIFYICONDATA);    
       tnid.hWnd   =   hwnd;  
       tnid.uID   =   uID;    
       res   =   Shell_NotifyIcon(NIM_DELETE,   &tnid);    
       return   res;    
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值