我做的程序是在视图内横向和纵向画出两条线,鼠标移动时线也跟着移动。但是在视图内的文字有闪烁,如何解决。

解决方案 »

  1.   

    每次OnPaint的时候保存下你的窗口位图。
    在你的MouseMove事件中:(令CBitmap m_pBitmap为当前OnPaint中保存下来的位图对象)CClientDC dc(this);
    CRect     rectClient;this->GetClientRect(&rectClient);//在内存DC上重刷当前窗口位图
    CDC dcMemory;
    dcMemory.CreateCompatibleDC(&dc);
    CBitmap *pbmOld = dcMemory.SelectObject(m_pBitmap);
    dc.BitBlt(rectClient.left, rectClient.top, rectClient.Width(), 
            rectClient.Height(), &dcMemory, rectClient.left, rectClient.top, SRCCOPY);
    dcMemory.SelectObject(pbmOld);
    dcMemory.DeleteDC();
    //画你需要的线