回 帖 发 新 帖 刷新版面

主题:在OnPrepareDC()种设置映射模式后为什么在窗口滚动时图形模糊

在CMyView中重载了OnPrepareDC()函数,并在其中设置了映射模式,代码如下:

void CMyView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo) 
{
// TODO: Add your specialized code here and/or call the base class
    
    ///////////////////////
    CRect rect;
    GetClientRect(&rect);
    pDC->SetMapMode(MM_ISOTROPIC);
    
    pDC->SetWindowExt(50,50); 
    pDC->SetViewportExt(rect.Width(),rect.Height());
    ///////////////////////////////

//    CScrollView::OnPrepareDC(pDC, pInfo);
}

然后在OnDraw()中进行绘图操作
{
    ...
    ...
   pDC->MoveTo(0,0);
   pDC->LineTo(50,50);
   ...

}

运行显示没有问题,可是当我用鼠标拉动窗口的滚动条移动图形时,发现图形在客户区会形成一些拖动的痕迹,很模糊,这是怎么回事呢?是不是我缺少什么操作了,怎么解决这个问题呢?

回复列表 (共2个回复)

沙发

自己顶一下,不能让它沉了。

板凳

把//    CScrollView::OnPrepareDC(pDC, pInfo);
改为  CScrollView::OnPrepareDC(pDC, pInfo);就好了

我来回复

您尚未登录,请登录后再回复。点此登录或注册