在一个窗口上有几个可以用鼠标拖动的子窗口,当用鼠标拖动一个子窗口从另一个被覆盖的子窗口上移开时被覆盖的窗口并没有重绘,甚至连WM_PAINT消息也没有收到.请问这是为什么?我怎样让下面的窗口露出的部分自动重绘呢?不想手工发消息给被覆盖窗口的说.

解决方案 »

  1.   

    //获取主框架
    CMDIFrameWnd *pFrame = 
                 (CMDIFrameWnd*)AfxGetApp()->m_pMainWnd; // Get the active MDI child window.
    CMDIChildWnd *pChild = 
     (CMDIChildWnd *) pFrame->GetActiveFrame(); // or CMDIChildWnd *pChild = pFrame->MDIGetActive(); // Get the active view attached to the active MDI child
    // window.CDisplayModeView是你定义的
    CDisplayModeView *pView=(CDisplayModeView *) pChild->GetActiveView();
    if(pView)
    {
    //刷新
    pView->Invalidate(TRUE);
    }
      

  2.   

    谢谢你的回答,但我的程序不是MDI,而是Dialog型的.一个Dialog上建立了几个没有标题栏和边框的CWnd.