当前位置:主页>销售管理软件> 列表

图像抖动问题

进销存管理软件版1楼: 我用TBitmap对象和TCanvas组件在后台画图,Timage在前台显示,实现位图移动。但是图像抖动的厉害。采取了下列措施还是抖动.在线等待,急切盼望能得到各位大侠的帮助,送200分.
1.image1.parent.doublebuffered:=true;
2.拦截WMEraseBkgnd消息
procedure TForm1.WMEraseBkgnd(var Msg: TWMEraseBkgnd);
begin
Msg.Result :=1;
end;

2楼: 用以下几个函数就可以了,
我从我原来的代码抄下来的
var
hMemDC: HDC;

hMemDC := Windows.CreateCompatibleDC(Getdc(Form1.Handle));
bmpPage := TBitmap.Create;
bmpPage.Width := w;
bmpPage.Height := h;

hOld := windows.SelectObject(hMemDC,bmpPage.handle);
dc := GetWindowDC (Form1.Handle);

bitblt(dc,nCopyX ,nCopyY, Form1.Width, Form1.Height ,
hMemDC,nCopySrcX,nCopySrcY,SRCCOPY); 如金蝶财务软件价格

3楼: 方法是 先把图像绘制到 Memdc 中,

在窗口的重中,将 memdc bitblt copy 到窗口 dc 中

4楼: to djh_djh:
你好。首先感谢你的帮助.
按照上述方法
在formshow事件中可以显示初始图像,在Timer1Timer事件中,图像却不能移动.
不知为何?

5楼: 按照上述方法,图像移动后,依然抖动的厉害.
不知如何是好.急切盼望哪位大侠能帮忙解决这个问题!!!!

6楼: 你在窗体的 OnShow 事件中,加上一句:
Self.DoubleBuffer := True;
保证你会把分给我的,~~OK

进销存管理软件版7楼: 用Delphi7可以解决这个问题

8楼: 不要在定时器中会制
不要用 控件
直接在窗口中绘制

你到 www.123365.com 下一个软件看一下,我的就是这样写的,不闪

9楼: 在显示刷新图象的时候只刷新图象中变化的部分,没变化的地方就不刷新,这样可以很好的消除图象抖动的.
我曾经在编写的一个显示料位的控件中就是采用这个方法的.

10楼: 多人接受答案了。

11楼: 谢方的解决方案最绝,Thanks



上一篇:SQLSERVER 2000 修改库表字段类型的问题,急!   下一篇:没有了