在vc窗口中绘图.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在vc窗口中绘图

图形设备接口(GDI)与设备描述表(DC)图形设备接口(GDI)许多MS-DOS程序都直接往视频存储区或打印机端口输送数据,这种做法的不利之处在于需要对每种显示卡或打印机类型提供相应的驱动程序。Windows则提供了一抽象的接口,称之为图形设备接口(GDI)。Windows 己经提供了各种显示卡及打印机的驱动程序,这样我们的程序就可以不必关心与系统相连的显示卡及打印机的类型。我们的程序可以通过调用GDI函数和硬件打交道,而各种GDI函数会自动参考被称为设备环境(CDC)的数据结构。Windows会自动将设备环境结构映射到相应的物理设备,并且会提供正确的输入输出指令。设备描述表(DC)在Windows环境中,各程序的输出必须限制在自己的窗口中。GDI使用一种简单的机制保证在窗口中画图的各程序遵循这个规则。这种机制即为设备描述表(DC);当Windows程序在屏幕、打印机或其它设备上画图时,它并不是将像素直接输出到设备上,而是将图绘制到由设备描述表表示的逻辑意义上的显示平面上去。设备描述表是深寓于Windows中的一种数据结构,它包含GDI需要的所有关于显示平面情况的描述字段,包括相连的物理设备和各种各样的状态信息。设备描述表对象在使用MFC编制Windows程序时,设备描述表具有更加突出的作用。除了可作为通往各种设备的桥梁之外,设备描述表对象还封装了程序用来产生输出的GDI函数。在MFC中,你不用捕获设备描述表句柄和调用GDI输出函数,至少不必直接捕获和调用,而是通过创建一设备描述表对象并调用它的成员函数来画图。设备描述表句柄在平面上画图之前,Windows程序从GDI获取设备描述表句柄,并在每次调用完GDI输出函数时将句柄返回给GDI。在MFC应用程序中获取设备描述表的一种方法是调用CWnd::GetDC,它返回指向表示 Windows设备描述表的CDC对象的指针。在画图完毕,要用CWnd::ReleaseDC释放指针(注:在OnPaint处理程序中,不用显示调用这两个函数)CDC派生类为了避免获取和释放设备描述表所带来的麻烦,MFC提供了一些CDC派生类,如 CPaintDC,CClientDC,CWindowDC这些类被设计为可直接进行实例化。各个类的构造函数和析构函数调用相应的函数捕获和释放设备描述表,从而便得设备描述表的使用非常方便简捷。例如:CPaintDC dc(this);//Do some drawing传送给类构造函数的指针确定了设备描述表所属的窗口。设备描述表属性当使用CDC输出函数在屏幕上画图时,输出的某些特性并没有在函数调用过程中规定(采用系统默认的属性画图),但我们可以通过设备描述表自身获得或得新设置属性。MFC提供了获得和设置这些属性的函数,我们可以用这些函数方便地改变画图时的默认属性。例如:CDC::SetTextColor//设置文本颜色CDC::GetTextColor// 获得文本颜色CDC::SetBkColor//设置背景颜色CDC::SetBkMode//设置背景模式CDC::SetMapMode// 设置映射模式CDC::CDC::SetROP2//设置绘图模式CDC::MoveTo//当前位置CDCL::SelectObject// 当前画笔,当前画刷,当前字体(如果想忽略背景色,可将背景设置为Transparent,dc.SetBkMode(TRANSPARENT);)SelectObject函数最常用来定义设备描述表属性的CDC函数是SelectObject。例如:CPen pen(PS_SOLID,2,RGB(0,192,0));CPen* pOldPen = dc-SelectObject(pen);//把新的CDC对象选入设备描述表,同时保存旧的CDC对象dc-Ellipse(0,0,100,100);dc.SelectObject(pOldPen);//绘图模式与SetROP2GDI将像素点输出到逻辑平面上时,它不只是简单地输出像素点颜色。相反,它能过一系列的布尔运算将输出像素点的颜色和目标位置上像素点的颜色合成一起。它所使用的逻辑关系由设备描述表当前的绘图模式确定。使用CDC::SetROP2(Set Raster Operation To)可更改绘图模式。默认绘图模式为R2_COPYPEN,它将将像素点复制到显示平面上。映射模式默认映射模式固定比例映射模式可编程映射模式简单地说,映射模式是设备描述表的属性,用于确定从逻辑坐标值到设备坐标值的转换方式。默认的映射模式默认的映射模式使MM_TEXT,它使以象素为单位的。X轴向左为正,Y轴向下为正。默认的坐标原点在左上角。固定比例映射模式固定比例的映射模式有MM_LOMETRIC、MM_HIMETRIC、MM_LOENGL

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档