怎么没人呀,大虾你们在哪里呀

解决方案 »

  1.   

    在OnDraw中绘图,不用调用OnPrepareDc。因为在OnDraw中,当滚动事件发生时,CScrollView就用OnVScroll或OnHScroll消息处理程序捕获随后的消息,并::ScrollWindow
    来滚动视图。稍后,视图的OnPaint函数将被调用,以绘制由::ScrollWindow造成的失效窗口的一部分。以下时CScrollView从CView继承来得OnPaint处理程序:
    CPaintDC dc(this)
    OnprepareDC(&dc);
    OnDraw(&dc);
    所以你不必调用OnPrepareDC()就可以滚动视图,但是不能高效的滚动。
    优化OnDraw的关键时CDC函数GetClipBox、GetClipBox用无效矩形的逻辑坐标下的驰骋和位置来初始化RECT结构或CRect对象。
    CRect rect;
    pDC->GetClipBox (&rect);