如QQ,按了最小化按键,不像别的程序缩入任务栏中间,而是缩入任务状态栏。
按最小化按键触发哪一个事件?请问响应哪一个消息?
thank

解决方案 »

  1.   

    1.WM_CLOSE.
    2.ShowWindow(SW_HIDE).
    3.programming with Window Shell.
      

  2.   

    重载CMainFrame中的WindowProc函数。LRESULT CMainFrame::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
    {
        if(message == WM_SYSCOMMAND)
        {
            if(wParam == SC_MAXIMIZE)
            {
                MessageBox("最大化");
            }
            else if(wParam == SC_MIXIMIZE)        {
                MessageBox("最小化");
            }
            else if(wParam == SC_CLOSE)        {
                MessageBox("关闭");
            }
        }
        return CFrameWnd::WindowProc(message, wParam, lParam);
    }
      

  3.   

    LRESULT CMainFrame::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
    {
        if(message == WM_SYSCOMMAND)
        {
            if(wParam == SC_MAXIMIZE)
            {
                MessageBox("最大化");
            }
            else if(wParam == SC_MIXIMIZE)        {
                MessageBox("最小化");
            }
            else if(wParam == SC_CLOSE)        {
                MessageBox("关闭");
            }
        }
        return CFrameWnd::WindowProc(message, wParam, lParam);
    }
      

  4.   

    MFC 程序用不了那么复杂,只须重载OnSysCommand(UINT nID, LPARAM lParam)函数即可。
     OnSysCommand(UINT nID, LPARAM lParam)
    {
          switch(nID & 0xFFF0)
         {
           case IDM_ABOUTBOX:
    {
         CAboutDlg dlgAbout;
         dlgAbout.DoModal();
    }
    break;
           case SC_MINIMIZE:
    AfxMessageBox("Minimize box");
           default:
    CDialog::OnSysCommand(nID,lParam);
           }
    }