GDI对象使用过程

MFC的GDI对象的构造与释放 一、设备上行文 CDC对象封装了设备上下文的一个句柄m_hDC,如果通过GetDC();来操作设备上下文,一定要在退出函数时调用ReleaseDC(); GetDC();相当于获得了一个当前设备上下文的一个副本,调用它是会重新分配内存的,ReleaseDC();相当于将新分配的内存free。 如果CClientDC来操作设备上下文,那么它会在对象的析构函数中调用ReleaseDC(); 阅读详情
 GDI对象要选入Windows 设备描述表后才能使用;用毕,要恢复设备描述表的原GDI对象,并删除该GDI对象。

 

一般按如下步骤使用GDI对象:

 

Create or get a GDI OBJECT hNewGdi;

 

hOldGdi = ::SelectObject(hdc, hNewGdi)

……

::SelectObject(hdc, hOldGdi)

::DeleteObject(hNewGdi)

先创建或得到一个GDI对象,然后把它选入设备描述表并保存它原来的GDI对象;用毕恢复设备描述表原来的GDI对象并删除新创建的GDI对象。

GDI+编程简介 1.引言 GDI+是Windows XP中的一个子系统,它主要负责在显示屏幕和打印设备输出有关信息,它是一组通过C++类实现的应用程序编程接口。顾名思义,GDI+是以前版本GDI的继承者,出于兼容性考虑,Windows XP仍然支持以前版本的GDI,但是在开发新应用程序的时候,开发人员为了满足图形输出需要应该使用GDI+,因为GDI+对以前的Windows版本中GDI进行了优化,并添加了许多新的功 阅读详情

相关推荐

使用GDIView工具排查GDI对象泄漏案例的若干细节总结

这个问题排查起来虽然不复杂,但其中涉及到的一些细节点,很有价值,在这里给大家详细总结一下。案例本身可能比较简单,排查起来也很快,但案例中所涉及到的若干细节点可能很有价值,我们在问题复盘时要积极的思考与总结,也可以将之前遇到的一些问题及场景串联,进行归纳整理(多向自己提问,多问问自己为什么,要思维扩散,要联想串联)。有了这些思考和总结之后,下次在遇到类似问题时,就会有明确的排查思路和手段,能有效地提高问题排查的效率,能快速的定位问题。

dvlinker的技术专栏 2万+

GDI对象的使用

VC++中GDI对象的使用步骤如下:1:GDI对象选入绘图设备,同时获取原有GDI对象; 2:保存原有GDI对象windows下的唯一标识; 3:绘图 ;4:恢复原有GDI对象; 对于CRgn 和CRect,直接创建使用,在生命周期结束时,删除即可. 如果上述过程省掉步骤4,导致结果如下: 1:短期内,程序正常,看不出内存增长,CPU上升 2:运行一段时间(1-7天)后,内存开始增长,cp

木木 1577

使用 Windows 调试器查找 GDI 泄漏

本文是有关使用Windows调试器查找和修复GDI句柄泄漏的演练。Windows调试器应该是最后的手段,首先在整个代码库中搜索并检查这两个函数调用之间的 GDI 代码是否有未删除的句柄并将其删除。使用任务管理器,我们可以在“详细信息”选项卡页上添加“GDI 对象”列,以获取每个进程当前打开的 GDI 句柄的数量。一个进程最多可以有 10000 个打开的 GDI 句柄。所有进程的系统范围限制为 65535。右键单击标题以选择要显示的列。选中“GDI 对象”选项以添加到“详细信息”选项卡并关闭对话框。

Z's Palace 1325

MFC使用GDI+编程设置

VC2005“项目/*属性”菜单项,打开项目的属性页窗口,先选“所有配置”,再选“配置属性/链接器/输入”项,在右边上部的“附加依赖项”栏的右边,键入GdiPlus.lib 后按“应用”钮,最后按“确定”钮关闭对话框。在需要用到GDI+的文件头加上下面两句#include using namespace Gdiplus;在应用程序类应用程序类(CGDIPlusDemoApp) 头文件中声明

小发猫 1451

别再瞎试了!用Python+正交设计,5分钟搞定你的多因素实验方案

本文介绍了如何利用Python和正交设计高效优化多因素实验方案。正交设计通过精心设计的正交表,用最少的实验次数覆盖所有因素的水平组合,显著提升实验效率。文章详细讲解了正交设计的核心优势、Python实现工具链、实验实施与数据分析方法,以及高级技巧与常见问题解决方案,帮助读者快速掌握这一强大的实验优化技术。

weixin_42526087的博客 333

6轴机械臂(拟人臂+球形腕(三轴相交于一点))正逆运动学求解

1、DH坐标下机械臂参数 theta=[pi/10,pi/2,pi/4,-pi/4,pi/4,-pi/8];%关节角度 a=[0, 0.260, 0.025, 0, 0, 0];%连杆长度 d=[0, 0, 0, 0.280, 0, 0.072];%偏移距离 alpha=[pi/2, 0, pi/2, -pi/2 , pi/2, 0];%RBR型6轴机械臂 使用...

qq_33374294的博客 7883

MFC创建GDI区域对象

        区域也是GDI对象六大GDI对象之一、但是他并不像画笔和画刷那样,其实说白了就是提供一个区域,这个区域有程序员来创建、想要的大小、想要的形状、你可以在这个区域里面随心所欲填充好看的颜色和漂亮的图形,同时他也可以缩小、以及放大等等、还可以将多个区域进行组合、进行逻辑运算。 【更多精彩教程,视频教学、源码分享请加入QQ群:569268376】         下面就来开始创建区域: ...

码农 675

Thompson Sampling vs UCB:5个真实业务场景下的算法选型指南

本文深入对比了Thompson Sampling与UCB算法在电商推荐、在线广告、医疗试验、金融定价和游戏调整五大真实业务场景下的表现。通过量化指标分析,为技术决策者提供了清晰的选型指南:Thompson Sampling凭借其概率匹配和贝叶斯框架,在需要快速收敛、处理冷启动及复杂约束的场景中通常更具优势;而UCB则在要求确定性、可解释性和理论保证的场景下表现更佳。

weixin_29181861的博客 153

mfc使用GDI+

初始化: ////////////////////////////////////////////////////////////////// stdafx.h #include <GdiPlus.h> ////////////////////////////////////////////////////////////////// APP.h ULONG_PTR m_gdiplu...

修罗的博客 1008

python刷B站播放量

首先,我们要知道B站播放量计算方法:不同的IP只能算一次,如果点一下就关掉,会出现播放完成度很低的情况,反而不利。 所以我们要做的是:不停换IP地址打开视频播放页,最好能看完视频。 下面是实现方法: 获取某一个网页上的所有代理IP,返回一个IP列表: def get_ip_list(url, headers): web_data = requests.get(url, headers=headers) soup = BeautifulSoup(web_data.text, 'lxml

HGGshiwo的博客 1万+

WIFI基础入门--802.11g--增强速率物理层ERP--15

WIFI基础入门--802.11--增强速率物理层--191.802.11g的组件保护机制 1.802.11g的组件 802.11g其实是将好几种物理层规范合而为一。虽然统称为增强速率物理层(Extended Rate PHY简称ERP),但是实际上ERP有好几种不同的方式: ERP-DSSS与ERP-CCK 这两种模式向下兼容于原始直接序列规范(1Mbps与2Mbps),以及所提到的802.11...

香蕉一号 4617

定位MFC程序GDI对象泄漏过程中的一些经验

定位MFC程序GDI对象泄漏过程中的一些经验之前接触MFC比较少,最近一个程序需要使用MFC写界面。写完之后发现程序运行一段时间后异常卡顿,并且WIN7系统任务栏图标出现一些毛边等异常情况。重新运行程序,打开任务管理器发现GDI对象不断增加,且数量到达9999后程序开始异常。因此判断程序可能存在GDI对象泄漏,即创建的GDI对象没有及时释放。 鉴于GDI对象不断自动增加,判断GDI泄漏可能位于定时...

thanklife的专栏 769

【2026最新版】PCL点云处理算法汇总(C++长期更新版)

PCL学习目录。博客长期更新,最近一次更新时间为:2026年10月4日。

点云侠的博客 63万+

CResourceException MFC程序GDI对象泄漏过程剖析

       优化程序之后发现程序运行一段时间后,就莫名奇妙的崩溃退出,并没有弹出任何信息。通过调试程序后发现CResourceException异常,通过网上查找才知道是GDI对象泄露。凡是CreateXX的,最后一定要DeleteObject或者DeleteXXX。        打开任务管理器发现GDI对象不断增加,且数量到达9999后程序开始异常。因此判断程序可能存在GDI对象泄漏,即创...

woniulx2014的博客 2147

黑猫带你学eMMC协议第1篇:全网最全emmc协议中文详讲,这份学习框架图,你值得拥有!!!(持续更新中...)

黑猫带你学eMMC协议第7篇:全网最全emmc写保护详解(write protect) 黑猫带你学eMMC协议第8篇:emmc可靠写详解(Write Reliability) 黑猫带你学eMMC协议第9篇:emmc的分区配置(partitioning) 黑猫带你学eMMC协议第10篇:eMMC命令队列详解(CMDQ) 黑猫带你学eMMC协议第11篇:eMMC擦除详解(erase/trim/discard/sanitize/secure erase/secure trim…) 黑猫带你学eMMC协议第12篇:

黑猫奥利奥的博客 2万+

淘系商品的成长密码:历史与趋势透视

本文分析了淘系商品的发展历程,从早期的市场探索到如今的行业领先地位,深入探讨了技术创新、供应链优化、用户需求洞察等关键因素在淘系商品成功中的作用。通过对平台不断完善商品生态、提升购物体验和服务的过程分析,文章总结了淘系商品在竞争激烈的市场中如何通过创新应对挑战并推动电商行业的进步。未来,随着消费趋势变化和新兴模式的兴起,淘系商品将在更大范围内发挥其市场影响力。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 6万+

GDI中的绘图简易过程及基础名词解释

总结一下,CDC是一个表示设备上下文的类,封装了与设备相关的绘图操作和属性。HPEN是一个表示画笔的句柄,用于标识一个画笔对象。可以通过CDC的CreatePen()函数创建一个画笔对象,并使用SelectObject()函数将画笔选入设备上下文中。可以通过CDC的CreatePenIndirect()函数创建一个逻辑画笔对象,并使用SelectObject()函数将逻辑画笔选入设备上下文中。CDC(Device Context)是一个表示设备上下文的类,它封装了与设备相关的绘图操作和属性。

weixin_49146002的博客 265

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Windows GDI 对象泄漏排查实战

本文结合实战经验,系统介绍GDI对象类型、典型泄漏场景、GDIView工具高效用法及进阶分析技巧。

Darker的博客 2195

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

GDI与GDI+

先说GDI,GDI:Graphics Device Interface,图形设备接口。是一个图形显示的函数库,通过调用接口可以实现图形图像的绘制。 DC:Device Content,俗称设备上下文,是绘图的重要部分。相当于画布的作用,确定绘图模式和映射模式。 (1)获取DC: (a)HDC dc = GetDC(hwnd);参数为窗口句柄,返回窗口对应的DC。为NULL时,返回的是桌面的D

World-wang 913

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

把GDI中的CBitmap转成GDI+中的Bitmap

 GDI+ 使用前要初始化ULONG_PTR m_gdiplusToken;Gdiplus::GdiplusStartupInput gdiplusStartupInput;Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL)CBitmap 转 Bitmap:Bitmap m_pBackBmp = ::new Bi

琦梦--之--冰河木屋 3279

gdi 中发生一般性错误_C#图形编程GDI+基础

公众号:thinger_net加关注 编写图形程序时需要使用GDI(Graphics Device Interface,图形设备接口),从程序设计的角度看,GDI包括两部分:一部分是GDI对象,另一部分是GDI函数。GDI对象定义了GDI函数使用的工具和环境变量,而GDI函数使用GDI对象绘制各种图形,在C#中,进行图形程序编写时用到的是GDI+(Graphics ...

weixin_36296325的博客 503

GDI和GDI+对象的相互转换

GDI和GDI+对象的相互转换 作者:dotLive 当然希望可以使用GDI+来完全代替GDI,再不济也只需要从GDI对象转到GDI+对象。但是就是有那么些半吊子的工程,又要新技术新特性、又希望快速开发、又不肯丢弃旧版本的已有的功能。没办法,只能打补丁。石头、剪子、不...... 1.CDC到Graphics只要这样: Graphics

summer__xt的专栏 721

GDI+学习笔记之GDI+环境初始化

GDI+学习笔记之GDI+环境初始化

qq_43679402的博客 318

在VC中使用GDI+从自定义资源中加载图片

函数定义: BOOL ImageFromIDResource(UINT nID, LPCTSTR sTR, Image * & pImg) { HINSTANCE hInst = AfxGetResourceHandle(); HRSRC hRsrc = ::FindResource (hInst,MAKEINTRESOURCE(nID),sTR); // t

LifeForToday的博客 2534

GDI+中发生一般性错误的解决办法

System.Drawing.Image bmp = System.Drawing.Image.FromFile(path); Bitmap imgSrc = new Bitmap(bmp.Width, bmp.Height); // 新建一个图像复制原图,然后进行各种操作。把原图关闭再保存覆盖原图。 Graphics gs = Graphics.FromIma...

308
上一篇: CDC派生出的设备描述表
下一篇: JDBC基础
anthit
博客等级 码龄21年 13粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值