摘要: 双缓冲在GDI+里可以有效的提高描画效率。改善显示的质量。 下面的代码是一个最简单的双缓冲的模板。可以根据需要,做简单的修改即可。 Bitmap CacheImage( [Width], [Height] ); Graphics CacheGraphics( &CacheImage ); // 对CacheImage进行描画 // ...... // 获得窗口的Graphics对象 Graphics Graphic( [ Window’s HDC ] );// 将描画好的CacheImage画到窗口上 Graphic.DrawImage( &CacheImage, [Left] 阅读全文
posted @ 2013-09-15 19:22 学友2000 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 一般的windows复杂的界面需要使用多层窗口而且要用贴图来美化,所以不可避免在窗口移动或者改变大小的时候出现闪烁。先来谈谈闪烁产生的原因原因一:如果熟悉显卡原理的话,调用GDI函数向屏幕输出的时候并不是立刻就显示在屏幕上只是写到了显存里,而显卡每隔一段时间把显存的内容输出到屏幕上,这就是刷新周期。一般显卡的刷新周期是1/80秒左右,具体数字可以自己设置的。这样问题就来了,一般画图都是先画背景色,然后再把内容画上去,如果这两次操作不在同一个刷新周期内完成,那么给人的视觉感受就是,先看到只有背景色的图像,然后看到画上内容的图像,这样就会感觉闪烁了。解决方法:尽量快的输出图像,使输出在一个刷新周期 阅读全文
posted @ 2013-09-15 19:13 学友2000 阅读(546) 评论(0) 推荐(0) 编辑
摘要: 1.GDI+模板#include#include#include #include #pragma comment(lib,"gdiplus.lib") //链接GDI+库#define WINDOW_CLASS L"GdiWindows"#define WINDOW_NAME L"GdiTemplate"#define NULL 0using namespace Gdiplus;LRESULT WINAPI MsgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp);ATOM RegClas 阅读全文
posted @ 2013-09-15 15:53 学友2000 阅读(886) 评论(0) 推荐(0) 编辑