xt_jat 2014-04-25 09:11
浏览 874

图形移动不平滑的问题,请求帮助

我用MFC 框架,gdi画图, 已经使用了 双缓冲。下面是代码。
我用timer 没40ms 调用一次invalidate, 理想的情况下,横线是很平滑的从上往下移动。但现在的情况是 这个线一跳一跳的,不知道我哪里做错了,希望能得到帮助

int ss = 0 ;

void CSmoothTestView::OnDraw(CDC* pDC)
{
CSmoothTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;

// TODO: add draw code for native data here

CRect rcClient ;

GetClientRect(rcClient) ;


CBitmap bitmap ;

bitmap.CreateCompatibleBitmap(pDC, rcClient.Width(), rcClient.Height()) ;

CDC memScreenDC ;
CBitmap* pOldScreenBmp ;


memScreenDC.CreateCompatibleDC(pDC) ;

pOldScreenBmp = memScreenDC.SelectObject(&bitmap) ;
memScreenDC.FillSolidRect(0, 0, rcClient.Width(), rcClient.Height(), RGB(255, 255, 255)) ;

memScreenDC.MoveTo(0, ss) ;
memScreenDC.LineTo(rcClient.right, ss) ;

pDC->BitBlt(
        0,
        0,
        rcClient.Width(),
        rcClient.Height(),
        &memScreenDC,
        0,
        0,
        SRCCOPY
        ) ;

memScreenDC.SelectObject(pOldScreenBmp) ;


if ( ss > rcClient.bottom )
{
    ss = 0 ;
}

ss += 2 ;

}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 sub地址DHCP问题
    • ¥15 delta降尺度计算的一些细节,有偿
    • ¥15 Arduino红外遥控代码有问题
    • ¥15 数值计算离散正交多项式
    • ¥30 数值计算均差系数编程
    • ¥15 redis-full-check比较 两个集群的数据出错
    • ¥15 Matlab编程问题
    • ¥15 训练的多模态特征融合模型准确度很低怎么办
    • ¥15 kylin启动报错log4j类冲突
    • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大