我现在做了程序启动的时候生成了一个托盘图标,我想在随系统启动时窗口最小化,如果是双击启动程序就显示出窗口,要如何做呢?

解决方案 »

  1.   

    //最小化到托盘m_notify.cbSize=sizeof NOTIFYICONDATA;  
    m_notify.hWnd=this->m_hWnd;    
    m_notify.uID=IDR_MAINFRAME;  
    m_notify.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));  
    strcpy_s(m_notify.szTip, m_szUserName);  
    m_notify.uCallbackMessage=WM_USER_NOTIFYICON;  
    m_notify.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP; //OK,下面就是托盘产生了.   
    Shell_NotifyIcon(NIM_ADD,&m_notify);
    AfxGetApp()->m_pMainWnd->ShowWindow(SW_HIDE); //隐藏窗口
      

  2.   

    ON_MESSAGE响应图标消息LRESULT CDBTestDlg::OnNotifyMsg(WPARAM wparam,LPARAM lparam)  
    //wParam接收的是图标的ID,而lParam接收的是鼠标的行为     
    {  
    if(wparam!=IDR_MAINFRAME)     
    return    1;     
    switch(lparam)     
    {          
    case    WM_LBUTTONDBLCLK://双击左键的处理     
    {     
    //显示出窗口
    }     
    break;     
    }      
    return 0;  
      

  3.   


    非常感谢,可是还有一个问题,网上找了很久也没得到答案,AfxGetApp()->m_pMainWnd->ShowWindow(SW_HIDE); //隐藏窗口 这个代码应该放在哪里呢? 我放在OnInitDiaolg()里面,程序启动时并不能隐藏窗口
      

  4.   

    哦,AfxGetApp()->m_pMainWnd->ShowWindow(SW_HIDE); //隐藏窗口  直接放到OnInitDiaolg()里面好像是不行记得在App::InitInstance()里面稍作修改可实现程序启动时隐藏窗口,具体记不清了你自己网上找下看看
      

  5.   

    给你上传了  自己下载吧http://download.csdn.net/detail/pirates_fish/6038469