想实现位图直线运动,但是位图不动啊。
我的步骤是:
在OnTimer()里改变坐标,并用InvalidateRect(&rect);UpdateWindow();强迫重绘(View类中的OnDraw被调用)。
在框架类的OnCreate中加SetTimer(0,300);
在View类的OnDraw里根据坐标变量进行绘图,代码如下
CRect rect;
GetClientRect(&rect);
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
CDC dcCompatible;
dcCompatible.CreateCompatibleDC(pDC);
dcCompatible.SelectObject(&bitmap);
pDC->BitBlt(i,i,rect.Width(),rect.Height(),&dcCompatible,0,0,SRCCOPY);
dcCompatible.DeleteDC();
但就是不动啊,请指点,谢谢。
我的步骤是:
在OnTimer()里改变坐标,并用InvalidateRect(&rect);UpdateWindow();强迫重绘(View类中的OnDraw被调用)。
在框架类的OnCreate中加SetTimer(0,300);
在View类的OnDraw里根据坐标变量进行绘图,代码如下
CRect rect;
GetClientRect(&rect);
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
CDC dcCompatible;
dcCompatible.CreateCompatibleDC(pDC);
dcCompatible.SelectObject(&bitmap);
pDC->BitBlt(i,i,rect.Width(),rect.Height(),&dcCompatible,0,0,SRCCOPY);
dcCompatible.DeleteDC();
但就是不动啊,请指点,谢谢。
改view里面的OnInitialUpdate里面设置SetTimer(0,300);
试试!
你在这个里面加的位置不对的话,可能你的窗口都还没创建。直接Invalidate(TRUE)不就擦出原有,再重绘了么如果你说的用户意义上的不要显示这幅图了,那么加个BOOL来控制要绘制撒。
Invalidate一刷新就变化了。在定时器中画是应该的