如何解决这个问题

解决方案 »

  1.   

    主窗口属性里设置:clip children 为True
      

  2.   

    一次性的Move多个窗口,请考虑使用:BeginDeferWindowPos, DeferWindowPos, and EndDeferWindowPos
      

  3.   

    例如:HDWP hdwp = BeginDeferWindowPos(10);
    ScrollItem(hdwp,IDC_BUTTON26, si.nPos - oldPos);
    ScrollItem(hdwp,IDC_BUTTON27, si.nPos - oldPos);
    ScrollItem(hdwp,IDC_BUTTON28, si.nPos - oldPos);
    ScrollItem(hdwp,IDC_BUTTON29, si.nPos - oldPos);
    ScrollItem(hdwp,IDC_BUTTON30, si.nPos - oldPos);
    ScrollItem(hdwp,IDC_BUTTON31, si.nPos - oldPos);
    ScrollItem(hdwp,IDC_BUTTON32, si.nPos - oldPos);
    ScrollItem(hdwp,IDC_BUTTON33, si.nPos - oldPos);
    ScrollItem(hdwp,IDC_BUTTON34, si.nPos - oldPos);
    ScrollItem(hdwp,IDC_BUTTON35, si.nPos - oldPos);
    EndDeferWindowPos(hdwp);
    void CMyDlg::ScrollItem(HDWP hdwp, int nID, int nScroll)
    {
    CWnd* pWnd = GetDlgItem(nID);
    CRect rect;
    pWnd->GetWindowRect(&rect);
    this->ScreenToClient(&rect);DeferWindowPos(hdwp,pWnd->m_hWnd,HWND_NOTOPMOST,rect.left,rect.top + nScroll ,0,0,SWP_NOZORDER | SWP_NOSIZE);
    }
      

  4.   

    我自定义的控件onPaint时就是用的双缓存,我用一个滑动条滑动时都不会闪硕,但是在OnSize下就不起做用闪烁的很。