DoubleBuffer 会自动完成? 以前是要自己写的
解决方案 »
- 散分。。。。大家觉得做一款什么软件能让你更方便快捷的使用电脑
- 对象指针
- 谁知道Delphi中如何使用Tform.creatnew
- LOGO后,启动了两个一样的主窗口,怎么去掉?
- 如果从资源文件里读取的图片,如何知道的它的尺寸大小,
- csdn论坛隔一会就死,没有心情上了,散分
- 查询逾期的纪录,查询条件是当前日期已大于应交款的日期,应交款日期为access中的日期格式,date是delphi的Tdatetime , select 语句中whe
- 怎样获得本机的计算机名称?
- 求救:有关DLL的使用!请进!
- SQL方面的问题!请进!
- Delphi 7 调用.net Web Service的问题!
- 关于TObjectList类的使用-在线等
TPaintBox没有doubleBuffer,我是把他的Parent的DoubleBuffer设置为True.
我每次都是在内存中画好以后在Bitblt到控件的canvas里。
我说的很清楚了。DoubleBuffered已设置为True,
WM_ERASEBKGND消息也处理为result=1;
绘图的时候是在内存里画好以后再贴上去的。
在你的procedure TWYWavePaintBox.PaintWithBitmap这个过程中,其中将位图2拷贝到MASK位图时,你错误地写了代码,你原来的代码是:
BitBlt(self.m_WYMaskBitmap.Handle,2*self.m_nXFont,self.m_nYFont,
self.m_nBitmapWidth,self.m_nBitmapHeight,
self.m_WYBitmap2.Canvas.Handle,0,0,SRCPAINT);
应该是:
BitBlt(self.m_WYMaskBitmap.Canvas.Handle,2*self.m_nXFont,self.m_nYFont,
self.m_nBitmapWidth,self.m_nBitmapHeight,
self.m_WYBitmap2.Canvas.Handle,0,0,SRCPAINT);
哈哈哈哈,就这么简单,怎么样?气了个半死吗?:P
请客吃饭。
再次感谢NoSound的帮助