电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

VC++中DC的概念VIP免费

VC++中DC的概念_第1页
1/6
VC++中DC的概念_第2页
2/6
VC++中DC的概念_第3页
3/6
VC++中关于DC(设备环境函数(Dev ice Contex t))的理解 问:设备描述表DC 是一个什么概念,谁通俗的说说,先谢了 学习VC,首先遇到的就是这个DC,即设置描述表,输出文字,绘图都要用这个,好象它太重要了。但是我就是不明白,这是什么东西。 一些教程看了,但还是不太了解,谁能通俗的说说,能快速理解它,谢谢。 答:1、作画之前需要准备好画布、画笔、调色板等。 当使用GDI 函数如 Mov eToEx /LineTo, Tex tOu t 时,只是告诉系统要划线或写字了,但用什么样的笔(HPEN),字是什么颜色(SetTex tColor),画在哪张“纸”(HBITMAP)上需要从一个由系统定义的数据结构中去读取。 这个数据结构被称为 Dev ice Contex t(DC)。 换句话说,GDI 函数只是绘画的动作,而 DC 则保存了绘画所需的材料和工具。 2、设备环境函数(Dev ice Contex t) 设备环境是一个结构,它定义了一系列图形对象及其相关的属性,以及会影响输出结果的绘图方式。这些图形对象包括:画笔(用于画直线),笔刷(用于绘图和填充),位图(用于屏幕的拷贝或滚动),调色板(用于定义可用的颜色集),剪裁区(用于剪裁和其他操作),路径(用于绘图和画图操作)。设备环境函数用于对设备环境进行创建、删除或获取信息。 问:DC,CDC,HDC,CClientDC....有什么本质的区别? 答:都是DC 嘛,HDC 就是最原始的 DC 句柄,很多 API 的第一个参数就是一个HDC类型,比如 HDC hDC = ::GetDC( m_hWnd); ::Mov eToEx ( hDC, 0, 0, NULL ); ::LineTo( hDC, 0, 100, ); ::ReleaseDC( m_hWnd, hDC ); 在 MFC 中,为了将 API 封装成一个类来操作,因此多出来了一个CDC。所以在 MFC 中,都是 CDC dc = GetDC(); dc.Mov eTo( 0, 0 ); dc.LineTo( 0, 100 ); this->ReleaseDC( &dc ); 但这样还不够,因为 CDC 还要你自己去释放,所有 MFC 中又多出来一个 CClientDC, 这样你就可以这样了: CClientDC dc(this); dc.MoveTo( 0, 0 ); dc.LineTo( 0, 100 ); CClientDC 的析构函数自己会释放自己。 DC 不是什么对象,就是设备上下文的简称。 与 CClientDC 一样,还有 CWindowDC,CPaintDC,只是它们的绘制范围不一样。 但弄到底,都只是 HDC 的一些封装而已,你可以在 CDC 类中直接引用 m_hDC,这就是那个原始的 HDC 句柄了。 CDC 是 MFC 的 DC 的一个类 HDC 是 DC...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

VC++中DC的概念

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部