C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – GDI双缓冲大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
已经成功实现了GDI的双缓冲,但没有使用GDI.我想显示一个png图像而不会闪烁.此外,在某些时候我还想使用GDI实现带有png图像的动画,因此知道如何使用GDI加倍缓冲是必要的.

我已经设法通过IST​​REAM将一个png图像放到一个Image对象中:这是我的一部分代码,可以帮助你理解我遇到麻烦的地方:

@H_635_9@memmove(pBlock,pImage,sizE); CreateStreamOnHGlobal(hBlock,falSE,&pStream); Graphics graphics(memDC); Image image(pStream); int image_width; int image_height; image_width= image.GetWidth(); image_height=image.GetHeight(); graphics.DrawImage(&image,posx,posy,image_width,image_height); BitBlt(hdc,image_height,memDC,SRCCOPY);

注意:如果我将png图像直接绘制到屏幕DC(hdC),它会渲染得很好.但是,当我首先尝试将图像绘制到memDC,然后将该memDC blt到screenDC时,不会出现图像!

有人可以指出我正确的方向,如何有人用GDI plus加倍缓冲?谢谢

解决方法

我认为您的问题可能在于如何创建R_485_11845@emDC – 您是否使用CreateCompatibleDC()创建它以确保它与您正在进行BitBlt()的hdc兼容?

我之前回答了类似于此问题的关于双缓冲的问题,您@R_238_9381@答案有用:

GDI Acceleration In Windows 7 / Drawing To Memory Bitmap

那里的代码我用了很多来用GDI加倍缓冲,但是使用GDI或GDI绘制到内存位图.我发现能够使用GDI非常有用,因为它比GDI更快地进行某些操作(特别是与位图相关的功能),但是GDI更容易做一些事情,因此它提供了两全其美的效果.

大佬总结

以上是大佬教程为你收集整理的c – GDI双缓冲全部内容,希望文章能够帮你解决c – GDI双缓冲所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:cgdi缓冲