刚想到一个方法,先在内存中创建两个 Memory DC,这是一个存在内存里的 dc ,它除了不像form picturebox能将图形、文字显示出来之外,其他的几乎都相同.
一个存储背景,一个用来绘制。 绘制过程是:1、用 BitBlt 拷贝背景 dc 到绘制 dc '相当于 .cls
2、在绘制 dc 上绘制图形
3、用 BitBlt 拷贝绘制 dc 到图片框 '相当于 .Refresh 这样就完成了整个过程,既不用 .cls 也不用 .Refresh 全部用BitBlt 代替了
还要在 Paint 事件中重绘,不过在 dc 上绘制好象比在 picturebox 上慢好多,不知道怎回事?
一个存储背景,一个用来绘制。 绘制过程是:1、用 BitBlt 拷贝背景 dc 到绘制 dc '相当于 .cls
2、在绘制 dc 上绘制图形
3、用 BitBlt 拷贝绘制 dc 到图片框 '相当于 .Refresh 这样就完成了整个过程,既不用 .cls 也不用 .Refresh 全部用BitBlt 代替了
还要在 Paint 事件中重绘,不过在 dc 上绘制好象比在 picturebox 上慢好多,不知道怎回事?
或者用一个单独位面作存储区,现绘制到存储位面上,大约22各指令周期后拷入前景位面,就会与人眼同步
sDC = CreateCompatibleDC(GetDC(0))
sBitmap = CreateCompatibleBitmap(GetDC(0), DCInfo.bmWidth, DCInfo.bmHeight)
sPrv = SelectObject(sDC, sBitmap)
SetBkMode sDC, TRANSPARENT现在问题是内存中创建的 dc 尺寸是否能够改变呢?如果不能每次改变窗口大小的时候就要重新创建啦。那位熟悉朋友指点一二