复杂的开发测井工程图件因含有大量的图像元素,要经过大量的比例关系换算、坐标系的转换和复杂的坐标映射才能将像素在正确的位置显示出来。巨幅、需滚屏显示的测井曲线,其运算量更大,如按常规滚屏的方法直接在应用程序的窗口绘制全图,由于开始绘制曲线像素所需的大量图元计算时间和结束像素绘制时间之间有一个延迟,而经常会出现图像的刷新速度慢、图像重叠和闪烁、花屏等现象。应用双缓冲技术,首先在内存中绘制整个测井曲线,在滚屏显示过程中将内存中相应位块的图像剪贴到显示区域,就能克服上述问题,连续地显示曲线,进而将内存中的设备相关图像转换成设备无关的、标准格式的图像进行保存。
在Windows中,应用程序在下面情况下会发出WM_PAINT消息请求绘图:
(1)当创建窗体或改变窗体大小时;
(2)在程序中使用Invalidate等函数来指定更新区域时;
(3)执行其它会影响客户区的操作时;
Windwos接收WM_PAINT消息后,就会执行OnPaint函数进行窗口的重绘工作,Windows自身所提供的绘图机制中,重绘窗口分两步进行:首先,Windows要发送WM_ERASEBKGND消息到窗口来通知窗口擦除背景,当窗口接收到WM_ERASEBKGND消息后,会调OnErase