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

我用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 ;

}