[MFC]知识集萃

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

CPen   pen; 
这句话创建了一个C++对象,也叫类的实例。这里的pen,并不是你所说的GDI对象。而是一个C++对象。 
GDI对象是操作系统的一种数据结构。它是与语言无关的。GDI对象指的是操作系统的某种资源,如PEN,   BITMAP,REGION等等。要创建一个GDI对象,在SDK中用如下语句 
HPEN   hPen   =   CreatePen(PS_SOLID,   1,   RGB(0,   0,   0)); 
这里的hPen就是一个指向GDI对象的句柄。 

因此,在用MFC时,要创建一个GDI对象,要分两步: 
1.   CPen   pen;   //创建一个C++对象。 
2.   pen.CreatePen(PS_SOLID,   1,   RGB(0,0,0));   //创建GDI对象,这个GDI对象是前 面创建的C++对象的一个成员。

 

1,CPen   pen(PS_SOLID,   1,   RGB(0,   0,   0)); 
与下面相同: 
CPen   pen; 
pen.CreatePen(PS_SOLID,   1,   RGB(0,   0,   0)); 
第二条语句的确是初始化已经创建的CPen. 
(initialize   a   pen   with   the   specified   style,   width,   and   color.) 
2,pDC-> SelectObject(&pen) 
只是将“这只笔”选进内存,为后面的绘制做准备。 

 

RV1126 ISP开发实战:从Tuner调试到IQ文件解析 本文详细介绍了RV1126 ISP开发的完整流程,从Tuner调试到IQ文件解析,涵盖了环境搭建、工具使用、参数配置及性能优化等关键环节。通过实战案例和避坑指南,帮助开发者快速掌握Rockchip芯片的ISP开发技巧,提升图像处理质量。 阅读详情

相关推荐

Simulink Test Sequence实战:5步搞定复杂逻辑测试(附Excel模板)

本文详细介绍了如何利用Simulink Test Sequence模块高效完成复杂逻辑测试。通过对比传统Excel方法的不足,阐述了Test Sequence以流程图和自然语言描述测试场景的优势,并提供了从环境搭建、逻辑构建到与Test Manager集成、利用Excel模板进行数据驱动的完整5步实战指南,帮助工程师将复杂的状态机或逻辑流测试从繁琐的‘体力活’转变为高效的‘技术活’。

snow3的博客 232

GDI编程之 一、GDI相关概念

一、GDI相关概念 1、GDI(Graphics Device Interface):图形设备接口,是一个应用程序与输出设备之间的中介。它提供了一套函数库,这些函数在不同的输出设备上输出图形和文字。一方面,GDI向应用程序提供一个与设备无关的编程环境,另一方面,它又以设备相关的格式和具体的设备打交道。   2、DC (Device Context):设备描述表(设备上下文),是一

DayDay__Up的专栏 981

Python之abbrobotegm包语法、参数和实际应用案例

`abbrobotegm` 是用于控制 ABB 机器人的 Python 接口包,主要通过 EGM(Externally Guided Motion,外部引导运动)协议与 ABB 机器人控制器进行通信,实现对机器人的实时位置控制、状态监控和运动引导等功能。该包适用于需要将 ABB 机器人与外部系统(如视觉系统、传感器等)集成的场景。

王国平的博客 1236

了解了解GDI

************************************************************************* 关于本文的字体格式:加粗字体(如:CGDIObject)表示类。 ************************************************************************* 先说说GDI的hierarchy

mwj_88的专栏 849

14.4 GDI 位图对象 (I)

摘录于《Windows程序(第5版,珍藏版).CHarles.Petzold 著》P522         在本章前面曾提到 Windows 从 1.0 版就开始支持 GDI 位图对象。由于 Windows 3.0 引入了设备无关位图,因此 GDI 位图对象现在有时也叫做设备相关位图(device-dependent bitmap)或 DDB。我将尽量不用设备相关位图的全称,因为乍一看,这个词和

wilim 1406

C++ MFC/BCG编程(六):GDI对象(CPen、CBrush)与基础绘图 (绘图模式、映射模式)

MFC中,CGdiObject类是GDI对象的基类,CGdiObject类有六个直接的派生类,GDI对象主要也是这六个,分别是:CBitmap、CBrush、CFont、CPalette、CPen和CRgn。

qq_39281631的博客 1182

GDI编程之 四、GDI对象

前面的程序只能画基本的图形,我们不能改变线条的颜色,线条的大小,不能填充颜色,也不能改变字体,显示一张位图等。要实现这些功能,我们就要使用GDI对象。不过,GDI对象是要通过DC才能发生作用的。要使用这些GDI对象,必须使用SelectObject函数将其选入DC中,如::SelectObject(hdc, hPen); 当然,使用之前,这些GDI对象必须存在,可以通过如下Win32函数来创

DayDay__Up的专栏 2482

GDI对象及其销毁方法

项目中造成了内存泄漏、线程同步、GDI对象泄漏等新手常见的问题,所以这个程序会不定时地莫名其妙地死掉,后来通过用Visual Leak Detector小心翼翼地解决了内存泄漏的问题,接着系统就稳定了很多,而且也重新看了多线程那部分,加了多个锁,也总算解决了线程同步的问题。然而系统还是隔一段时间死掉,后来在任务管理器里发现其”GDI对象“只增不减,原来还有GDI对象泄漏啊,这个好像在网上都找不到什

丰空岛主(Vega Prime,Android,LabWindows,ThreeJS,Python,OpenCV) 1300

操作系统核心对象GDI对象

①核心对象(Kernel object):表现为HANDLE,它由KERNEL32.DLL管理。   .核心对象可以有一个以上的拥有者,甚至可以是跨进程的拥有者。   .每一个核心对象内部都有一个引用记数(refenrence count),当引用记数为0时,操作系统将销毁该核心对象(cleans up操作);CloseHandle()的唯一作用就是将引用记数减1. 它只存于下列7种对象

gencheng的专栏 1272

关于设备上下文DC和GDI的理解

一、设备环境(Device Context)(设备上下文)     设备上下文DC是一个Windows数据结构,它包含了某个设备的绘制属性。通常,绘制调用都是借助于上下文对象,而这些设备上下文对象封装了用于画线、形状、文本等的Windows API。设备上下文是设备无关的,所以它既可以用于绘制屏幕,也可以用于绘制打印机甚至元文件。设备上下文在内存中创建,而内存经常受到扰动,所以它的地址是不固定的

七水的博客 6012

GDI对象

HBITMAP, HRGN, HBRUSH, HPEN, HPALETTE, or HFONT 位图,区域,画刷,画笔,调色板,字体,这些类都继承自CGDIObject,拥有一个m_hObject句柄图标和光标的加载可以采用CWinApp类中进行加载,能够返回图标和光标的句柄,采

667

GDI对象与核心对象

核心对象有Kerne32.dll管理,以HANDLE为使用时的参考依据。所谓handle,其实是个指针,只像操作系统内存空间中的某样东西,那东西不允许你直接取得,你的程序不能够直接取用它,是为了维护系统的完整性与安全性。Win32核心对象包括:进程、线程、文件、事件、信号量、互斥器、管道。 GDI对象GDI32.dll管理。 GDI对象和核心对象之间有一个主要的不同。GDI对象有单一拥有者,

jeromeyu的专栏 681

彻底解决GDI对象泄漏的问题

GDI画图时需要小心GDI对象泄露.以下为GDI对象释放对照表. GDI对象 产生方法 销毁方法 位图(HBITMAP) CreateBitmap,CreateBitmapIndirect, CreateCompatibleBitmap,CreateDIBitmap, CreateDIBSecti

天上的猩猩的专栏 5707

GDI是什么!

       GDI(Graphics Device Interface)图形设备接口,他主要负责系统与绘图之间的系统交换,GDI确实方便了不少应用程序员,而作为70年代的程序员来说在DOS上开发图形界面是一种奢求,他们得在那小的可怜的系统内存中,分配一部分内存来用于存储数据,本身内存有一部分视频缓冲区,但是又是高端内存,因此就有了64KB限制.开发图形界面这是对那些程序员来说是很繁琐的,还得设置

dyqq12的专栏 4629

C++/MFC-GDI主要对象(Bitmap、CBrush、CFont、CPalette、CPen和CRgn)

MFC中,CGdiObject类是GDI对象的基类,通过查阅MSDN我们可以看到,CGdiObject类有六个直接的派生类。 GDI对象主要也是这六个,分别是: ①CBitmap 位图 ②CBrush 画刷:区域颜色填充。 VS2010/MFC编程入门之五十一(图形图像:GDI对象之画刷CBrush) ③CFont 字体 VS2010/MFC编程入门之四十七(字

学前班的博客 2517

6、GDI对象--位图

CBitmap //创建位图 CBitmap::CreateBitmap(); CBitmap::CreateBitmapIndirect(); //由描述生成 CBitmap::CreateCompatibleBitmap(); CBitmap::GetBitmap(); //获取描述信息 CBitmap::FromHandle(); CBitmap::...

qq_38611124的博客 256
上一篇: [MFC]SetTimer()设置多个定时器
下一篇: [MFC]MFC的BUTTON控件响应鼠标按下和抬起
hicoder
博客等级 码龄16年 0粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值