OnGetMinMaxInfo()不能得到最大化、最小化消息。lpMMI指向的是一个定义最大化、最小化窗口属性的结构。
使用OnSize()试试。

解决方案 »

  1.   

    void CMainFrame::OnSize(UINT nType, int cx, int cy) 
    {
    CMDIFrameWnd::OnSize(nType, cx, cy);
    if(nType==SIZE_MINIMIZED)
    ShowWindow(0); 
    }
    2自己重载消息
    afx_msg void OnSysCommand( UINT nID, LPARAM lParam );void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam) 
    {
    // TODO: Add your message handler code here and/or call default
    if(SC_MINIMIZE==nID)
    {
    //加入你的处理代码
    } CWnd::OnSysCommand(nID, lParam);
    }
      

  2.   

    感谢happydeer(乖乖小鹿) & Phourm(),我相信我有了新的收获。
    现在,有谁能解答第一个问题吗?
      

  3.   

    BOOL WINAPI DrawAnimatedRects
    (
    HWND hwnd,  // 窗口句柄
    int idAni,  // 动画效果标记,保留并只能为0
    CONST RECT *lprcFrom,  // 起始窗口矩形
    CONST RECT *lprcTo  // 结束时窗口矩形
    ); 
    试试动画效果:)
      

  4.   

    第一个问题,其实是你的失误:
    你说你" 在InitInstance()中ShowWindow(SW_HIDE);"我估计你肯定是在Wizard生成的代码中的" pMainFrame->ShowWindow(m_nCmdShow);"后硬生生地加入上句的。
    如果你象下面所说地去做,就不会了:
            在Wizard生成的代码的" pMainFrame->ShowWindow(m_nCmdShow);"后加上"m_nCmdShow = SW_HIDE;",即如下所示:
              ...............
              if (!ProcessShellCommand(cmdInfo))
    return FALSE; // The main window has been initialized, so show and update it.
    m_nCmdShow = SW_HIDE;
    pMainFrame->ShowWindow(m_nCmdShow);
    pMainFrame->UpdateWindow();         return TRUE;
      

  5.   

    感谢AtCsdn()!在MDI情况下AtCsdn()说的没错,(其实MDI情况下直接在InitInstance()中修改ShowWindow(SW_HIDE);)是不会出现闪烁问题的,但我的问题是在SDI的情况下出现的,所以仍没有解决。
      

  6.   

    同意atcsdn老兄,如果还不行就在视图类中加WM_ERASEBKGND的处理,注释掉原来的return CView::OnEraseBkgnd(pDC);改为return TRUE or FALSE,就好多了,试试看