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条回答

    报告相同问题?

    悬赏问题

    • ¥15 c程序不知道为什么得不到结果
    • ¥40 复杂的限制性的商函数处理
    • ¥15 程序不包含适用于入口点的静态Main方法
    • ¥15 素材场景中光线烘焙后灯光失效
    • ¥15 请教一下各位,为什么我这个没有实现模拟点击
    • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置