各位大侠:
         CTreeCtrl控件中滚动或拖动滚动条时,不会出现闪烁,是什么原因?用什么技术实现的?
请各位大侠不吝指教!先谢了。

解决方案 »

  1.   

    自己继承Ctreectrl做的吗,理论上都不会的呀?这个事它内部的机制。
      

  2.   

    BOOL CViewTree::OnEraseBkgnd(CDC* pDC)
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    //双缓存解决闪烁问题
    CRect rect;
    GetWindowRect(&rect); CDC MemDC,mdc;
    CBitmap MemBitmap; mdc.CreateCompatibleDC(NULL);
    MemDC.CreateCompatibleDC(NULL); MemBitmap.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());
    CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);
    MemDC.FillSolidRect(0,0,rect.Width(),rect.Height(),RGB(255,255,255)); MemDC.BitBlt(0,0,rect.Width(),rect.Height(),&mdc,0,0,SRCCOPY); pDC->BitBlt(0,0,rect.Width(),rect.Height(),&MemDC,0,0,SRCCOPY); MemBitmap.DeleteObject();
    MemDC.DeleteDC(); return true;
    //return CTreeCtrl::OnEraseBkgnd(pDC);
    }
    CViewTree是继承CTreeCtrl的类,这样为什么还是不行?