我在窗体中,有一个panel,此pannel会在拖动滚动条时 改变位置,这样就会出现闪烁的问题。上网查了好久,好像有点眉目,应该是WM_ERASEBKGND。我尝试着截获了Form1 pannel panel.parent 的WM_ERASEBKGND消息,可是移动滚动条时(panel位置随之改变)依然会闪烁。
请高手指点,并谢绝看到‘闪烁’就回答双缓冲的同学。
请高手指点,并谢绝看到‘闪烁’就回答双缓冲的同学。
解决方案 »
- postmessage中各参数分别是什么意思?
- 求李维<Delphi5实战-电子商务篇>电子书或其下载地址。
- 编译后的可执行程序为什么不能独立运行?
- 求教:DBGrid怎样冻结某列,当移动水平滚动条时,让该列固定显示,不随着移动?
- realplay控件打包的难题。
- 请问,怎样做一个无窗体种序,而且该程序执行要带参数,这两种功能应怎样实现,答的快,分给的快!
- 大家看这样一个delphi程序我该要多少钱?
- 如何删除一个table1表中的所有记录!
- Tcombobox有没有提供方法下拉它,就象它被click?
- 请教如何用delphi5连接oracle数据库
- 向大家请教一个多线程问题
- Java调用Delphi的DLL问题
DoubleBuffer := true;
那请问你 设置谁为双缓冲。
我都试过了,不行的。我这个是拉滚动条,且移动panel位置造成的。
窗体、panel panel.parent 的双缓冲我都开了
procedure TForm_FabricReport.MyProc_Scroll(var message: TMessage);
begin
if message.Msg = WM_HSCROLL then
begin
pnl_tool1.Left := Self.Width - pnl_left.Width- pnl_tool1.Width - 30 + Self.HorzScrollBar.Position;
pnl_tool2.Left := Self.Width - pnl_left.Width- pnl_tool2.Width - 30 + Self.HorzScrollBar.Position; end;
FOldProc(message);
end;
pnl_tool1 pnl_tool2 闪烁
另外 个人感觉 应该不用调用FOldProc...
不调用滚动条就无效了
俺不知道你是要做啥
如果只是滚动条控制panel
为啥不用TScrollBox中放一个panel
不用设置双缓存也没有闪烁!
不用重载windproc也不用WM_ERASEBKGND
还不用双缓存!
呵呵!
很好用,很小,很方便。和你用image一模一样