如题,当然是不用animatewindow()了.

解决方案 »

  1.   

    使用内存DC
    然后用
    dc.BitBlt(GetRowTitleBarWidth(), GetColTitleBarHeight(), iWidth, iHeight, 
    m_pMemoryDC, 0, 0, SRCCOPY);
    把内存DC拷贝到屏幕中
      

  2.   

    animatewindow()效率低,确实不好用
    可以用MOVEWINDOW自己做,但是如果做到完全不闪烁,不太好办,
      

  3.   

    双缓存实现不闪烁效果,具体代码实现在OnDraw函数中
    void C***::OnDraw(CDC* pDC1)
    {
            CDC * pDC;
    pDC = new CDC;
    pDC->CreateCompatibleDC(pDC1);
            CBitmap bmp;
    bmp.CreateCompatibleBitmap(pDC1,nwidth,nheight);
    pDC->SelectObject(&bmp);        //下面在pDC上具体实现画法
            //
            //        pDC1->BitBlt(0,0,nwidth,nheight,pDC,0,0,SRCCOPY); bmp.DeleteObject();
    pDC->DeleteDC();
    delete pDC;}