小弟作了一个OCX控件,当拖动IE滚动条时,出现花屏,请问哪位高手能帮帮忙阿?

解决方案 »

  1.   

    重绘了,但没有完全重绘,
    我就是在OnDraw的时候进行图像绘制的阿~~~~
      

  2.   


    void CMyActiveX2Ctrl::OnDraw(
    CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
    {
    // TODO: Replace the following code with your own drawing code.
    pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
    pdc->Ellipse(rcBounds);
    CRect &rcInvalid2 = const_cast<CRect&>(rcInvalid);
    rcInvalid2.top = 0;
    rcInvalid2.left = 0;
    rcInvalid2.bottom = rcBounds.bottom;
    rcInvalid2.right = rcBounds.right;}
    跟踪调试的时候看到rcInvalid的大小为IE窗口的大小,刷新的区域也是这个区域。
    我想更改刷新区域,
        CRect &rcInvalid2 = const_cast<CRect&>(rcInvalid);
        rcInvalid2.top = 0;
        rcInvalid2.left = 0;
        rcInvalid2.bottom = rcBounds.bottom;
        rcInvalid2.right = rcBounds.right;
    不知道这样是否正确,但结果还是一样,没有变化~~~~ :(
      

  3.   

    重画确实是解决花屏的问题,但是由于重画导致闪屏的问题出现.有什么好的方法实现吗?我是用WM_ERASEBKGND和双缓冲,但是好象行不通,方法不适用.请高手提提高见.谢谢