VC2008环境下求一高手解决gdi+绘图闪烁问题

如题,求吧移动时候闪烁的问题解决,同时其他不变。求项目代码,只要实现图形旋转且不闪烁就行,无论你用VC++下什么框架做都行(注意是c++),但是必须用到双缓冲技术。谢谢,代码发我邮箱504460664@qq.com

我有写博客,都采用了双缓冲绘图的方式,用的是VC++的GDI+画法。请到CSDN下载,免费的。我这里无法发送CPP文件。

一个是:时钟控件:
http://blog.csdn.net/renstarone/article/details/9089835
另一个是:带滚动效果的进度条
http://blog.csdn.net/renstarone/article/details/9230763追问

你有邮箱吗? 我发个项目给你。很小。就一个指针。你的代码我看了 好多双缓冲 不怎么懂。求帮我改正 。新加的代码求标注下。

追答

我的邮箱是3099jo@163.com

双缓冲原理其时很简单。

    CPU的绘图速度比GPU(显卡)快很多,所以你的描绘都需要在CPU里完成。

    窗口执行WM_PAINT消息时,也就是让GPU进行描绘,所以这个时候不要有多余的操作,只用画一张Bitmap就好了,这样就不会引起闪烁了。

    为了让CPU画图,你需要动态创建一张Bitmap进行描绘,描绘完毕后,再在WM_PAINT消息里一次进行DrawImage即可。

温馨提示:内容为网友见解,仅供参考
无其他回答

用VC++2008编程,DOS框只闪现了一下就消失了
选开始执行不调试,或者在程序结束前加上一句system("pause");

VC ++ MFC如何解决GDI+对象越画越慢的问题
画图的问题,肯定要用双缓冲来画,不然能看到明显闪烁的,要在内存中创建个画布,先画在内存中,然后在一次呈现在屏幕上才行 具体怎么双缓冲,上网一搜GDI+双缓冲就行了,很多资料

关于GDI+的画笔问题,高手入进来看下啦,我是新手,不知怎么做才好?_百度...
可以把取鼠标位置的间隔放长一点,就是某些mouse move消息不响应。要么就通过算法去除噪点。图像细化后,很可能出现“毛刺”,同时也可能产生:“桥”---两结点间的线段 “环”---在线上或线端出现,原图像有“小孔”或“粘连”引起 “孤点”---独立的单个像素,原图像有“脏点”引起,若细化时不...

使用gdi+实现桌面歌词的效率问题
KUGOO不是用GDIPLUS,GDI+功能是很多而且是XP自带的速度还可以还能实现FLASH的全部绘图功能但是不知道他们为什么不是用的GDI+微软的算法应该很快吧没试过KUGOO的蛮占CPU的,还有你绘图方式错了先在内存把图片数据弄好在一次性搞不要搞很多步狂占CPU我没试过GDI+,光GDI我弄一副200X200的连续BMP图算法错了...

关于GDI+的画线的简单问题
头文件里面是不是没有关于myGraphics的类的文件。直接在View类的实现里面添加。

VC程序在运行时出错Debug Assertion Failed!不知道怎么做,请懂的讲...
应该是GDI绘图的时候发生的错误。你停止程序,在vc下按F5进入调试模式,触发以上错误后单击重试,看看错误发生地,可以大致确定是什么操作引发了错误,然后逐步根据程序代码确定错误的语句再改正。

GDI+窗体重绘后上面的其他部分都被屏蔽到了,高手指点!
重绘这事交给系统去做(只需要告诉系统重绘就可以了),除非一些特殊效果。DELPHI最简单思路,制做对话框,给对话框上背景图,给对话框加控件,发送重绘命令或者让程序自动重绘;VC没弄过,流程应该一样。你那些那些按钮之所以没有,估计是因为你在窗体放置图片控件,而不是背景图。。

...不要用CreateCompatibleDC,不要用BitBlt,求高手。。
思路我倒有,可惜不知道如何实现。写驱动,为你的系统增加一个虚拟显示设备,将标准输出设为虚拟显示设备,该设备再负责将输出输出到标准显示设备和将截图写入文件。

求编程达人指教有关绘图的问题
用VC VB做这些东西会死人的 MFC是必需的,这是Windows编程基础。如果想把自己的程序界面做得更好看的话,GDI也是很重要的。要是想改变控件外观的话,可以重载该控件类,用GDI进行重绘。

菜鸟求一段简单的C++的GDI+程序代码
apt[i].y = (int) (cyClient \/ 2 * (1 - sin (TWOPI * i \/ NUM))) ; } Polyline (hdc, apt, NUM) ; return 0 ; case WM_DESTROY: PostQuitMessage (0) ; return 0 ;

相似回答