我在窗体中,有一个panel,此pannel会在拖动滚动条时 改变位置,这样就会出现闪烁的问题。上网查了好久,好像有点眉目,应该是WM_ERASEBKGND。我尝试着截获了Form1 pannel panel.parent 的WM_ERASEBKGND消息,可是移动滚动条时(panel位置随之改变)依然会闪烁。
请高手指点,并谢绝看到‘闪烁’就回答双缓冲的同学。
请高手指点,并谢绝看到‘闪烁’就回答双缓冲的同学。
解决方案 »
- xml文件,文件编码的求助吧..
- 怎么开发delphi的ocx控件
- *******************新买的自行车在存车处丢了,大家说怎么办,是花钱存的,能赔吗。******************
- 问:想开发一个软件,同时有单机版和网络版,能否程序是一样的?
- 我是一个中专毕业生,工作两年半了,现在在北京工作,做的是电子产品设计和做软件,月薪6K,我想明年回杭州工作,因为我女朋友在杭州,想
- qreport的设计中我分组显示了查询的结果,并且想count每组的记录数量,怎么做啊?
- 如何调用vc写的dll,vc中export的是一个class
- 哪位大虾指教一下,如何调用mscomm控间?
- 怎样自己编写函数???
- 一个有关用dbgrid显示数据库查询结果的问题
- 向大家请教一个多线程问题
- 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一模一样