,,CreateCompatibleDC()函数案例详解

,,CreateCompatibleDC()函数案例详解

本文主要介绍CreateCompatibleDC()函数的用例的详细说明。本文通过一个简单的案例来说明对这项技术的理解和使用。以下是详细内容,有需要的朋友可以参考一下。

函数:这个函数创建一个与指定设备兼容的内存设备上下文环境(DC)。

原型:HDC CreateCompatibleDC(HDC HDC););

参数:

Hdc:现有设备上下文的句柄。如果句柄为空,此函数创建一个与应用程序的当前显示兼容的内存设备上下文。

返回值:如果成功,返回内存设备上下文环境的句柄;如果失败,返回值为NULL。

CreateCompatibleDc函数仅适用于支持光栅操作的设备。应用程序可以通过调用GetDeviceCaps函数来确定设备是否支持这些操作。

当不再需要内存设备上下文时,可以调用DeleteDc函数来删除它。

如果使用双缓冲,就必须定义另一个位图对象。然后,使用CreateCompatibleBitmap创建一个与屏幕显示兼容的位图,然后使用SelectObject将该位图选择到内存显示设备中。不知道是不是这样。

先给出实现方案,再解释,也是OnDraw(CDC *pDC):

CDC MemDC//首先定义一个显示设备对象

CBitmap MemBitmap//定义位图对象

//然后建立一个兼容屏幕显示的内存显示设备。

MemDC。CreateCompatibleDC(NULL);

//这个时候不能画,因为没地方画了_

//在下面设置一个与屏幕显示兼容的位图。至于位图的大小,可以使用窗口的大小,也可以自己定义(比如有滚动条的话,应该比当前窗口的大小大,在BitBlt中决定把内存的哪一部分复制到屏幕上)

MemBitmap。CreateCompatibleBitmap(pDC,nWidth,n height);

//选择位图到内存显示设备。

//只有选择了位图的内存显示设备才有位置在指定的位图上绘制。

CBitmap *pOldBit=MemDC。select object(membit map);

//先用背景色清空位图,这里我用白色做背景。

//你也可以使用你应该使用的颜色。

MemDC。FillSolidRect(0,0,nWidth,nHeight,RGB(255,255,255));

//绘图

MemDC。move to(……);

MemDC。line to(……);

//将内存中的图表复制到屏幕上显示

pDC-BitBlt(0,0,nWidth,nHeight,MemDC,0,0,src copy);

//绘制完成后清理

MemBitmap。delete object();

MemDC。DeleteDC();

Gdi应该是sdk里很重要的东西,但是我的水平真的不够好。我已经很久没有意识到CreateCompatibledc的用途了,但幸运的是,在知道这个东西的200天内,我终于知道了这个函数或者说内存dc的意义。

在这种情况下,如果你想在屏幕上进行更多的gdi函数操作,而如果每一步操作都直接在屏幕dc上操作,那么大部分的可能性都是屏幕闪烁。一个好的解决方案是使用内存dc。所有这些操作都是先在内存dc上操作,然后依次在屏幕上操作。

比如你只是用bitblt在屏幕上复制一张图片,就可以直接用屏幕的dc。但如果要先设置背景(fillrect),再设置bitblt,这就涉及到两个屏幕dc的操作,这样屏幕容易闪烁。

本文对CreateCompatibleDC()函数的详细说明到此为止。有关CreateCompatibleDC()函数的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 全面了解js中的匿名函数有哪些,全面了解js中的匿名函数是什么
  • 全面了解js中的匿名函数有哪些,全面了解js中的匿名函数是什么,全面了解JS中的匿名函数
  • 什么叫析构函数,析构函数和构造函数的作用
  • 什么叫析构函数,析构函数和构造函数的作用,析构函数的作用 什么是析构函数
  • 举例说明jquery中each函数的使用,jquery each()
  • 举例说明jquery中each函数的使用,jquery each(),JQuery中each()的使用方法说明
  • windows钩子函数,windows钩子基础教程
  • windows钩子函数,windows钩子基础教程,Windows的钩子机制详解
  • vue定义一个全局变量,vue全局声明变量,vue项目中定义全局变量、函数的几种方法
  • vuejs生命周期函数,vue生命周期详解简书
  • vuejs生命周期函数,vue生命周期详解简书,Vue js 的生命周期(看了就懂)(推荐)
  • Typedef,typedef函数
  • sql 函数大全 比较常用的一些函数整理语句,SQL常用函数
  • sql 函数大全 比较常用的一些函数整理语句,SQL常用函数,sql 函数大全 比较常用的一些函数整理
  • sql server取字符串函数,sqlserver截断字符串函数
  • 留言与评论(共有 条评论)
       
    验证码: