VC显示双缓冲

2016-02-19 20:11 8 1 收藏

有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享VC显示双缓冲吧。

【 tulaoshi.com - 编程语言 】

当应用程序中使用多次GDI调用绘制到窗口中时,在窗口清除并被重新绘制时,会出现明显的闪烁。使用双缓冲技术可轻松消除闪烁。

步骤如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

1、假设当前显示设备上下文为CDC * pDC;

2、使用CDC对象创建可兼容设备上下文,

      CDC memdc;

      memdc.CreateCompatibleDC(pDC);

3、使用CBitmap对象创建可兼容为图,

      CBitmap bmp;

      bmp.CreateCompatibleBitmap(pDC,SCREEN_WIDTH,SCREEN_HEIGHT);

4、将CBitmap对象选入CDC对象中,

     CBitmap *poldbmp=memdc.SelectObject(&bmp);

5、绘图操作,在memdc中进行,如:

     for(int i=0;iN;i++)
    {
              memdc.MoveTo(i,0);
              memdc.LintTo(i,N);
     }

    Rectangle(hdcMem,0,0,SCREEN_WIDTH,SCREEN_HEIGHT);
   DrawMenuButton(hdcMem);

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

6、使用BitBlt函数将memdc内容拷贝至pDC

pDC-BitBlt(0,0,SCREEN_WIDTH,SCREEN_HEIGHT,&memdc,0,0,SRCCOPY);

7、最后别忘了,

    memdc.SelectObject(poldbmp);

来源:http://www.tulaoshi.com/n/20160219/1622971.html

延伸阅读
如何扩展Win7双显示器的显示窗口   1、右键点击win7系统桌面,在菜单中点击屏幕分辨率。 2、在多显示器那边,原先是扩展这些显示,把它改成只在1上显示桌面。然后点击应用或确定。 3、恢复正常之后,再改回扩展这些显示,确定即可。 win7系统拖动窗口时找不到内容怎么办   tuLaoShi.com 原因分析:其实我...
虽然在高手看来这是垃圾问题,但对于我们这些菜鸟,这是很必须的.因为高手很不屑写这些的,我刚刚学会,为了挽救普天之下和我一样的菜鸟们,就写了这样一篇文章。 在vc中显示BMP并不象VB那么简单,用个loadpicture,什么格式全部ok,在vc中又需要做一些额外工作.我们用 SDI作示范。 新建一个SDI的工程,所有都是默认.打开资源编辑器,右键...
各位兄弟在看到标题时,可能会火冒三丈,"你这小子,欠揍吗?" 在MessageBox的最后参数上指定MB_YESNO不就行了? 众兄弟请息怒,请再看一遍标题,我说的是显示"Yes"与"No",不是"是"与"否",以下为示例代码:本文发表于http://bianceng.cn(编程入门网) #include windows.h HHOOK hHook; LRESULT __stdcall CBTHookPro...
vc 中动态显示bmp 的方法大致是三种:(我以320×240×1的255色灰度图举例) 1:将bmp导入资源中,这是最方便的,但同时也是最不灵活的,而且也费资源。 使用CBitmap 的LoadBmp(..) 2:可以通过 hBitmap=(HBITMAP) ::LoadImage(NULL,picname,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION); 具体使用可以参考msdn,我一开始接...
用vc++写console程序时,整天对着黑纸白字的屏幕,感觉很郁闷吧?很多人想用CONIO.H/GRAPHICS.H中的一些函数来实现,却发现VC++根本没有这些头文件。当然了CONIO.H/GRAPHICS.H是BORLAND TC/BC专有的头文件,所以vc++中根本没有这些文件。把这两个头文件COPY过来,然后用??答案当然是否定的。其实VC++中也有相关的函数来实现console彩色文...

经验教程

405

收藏

94
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部