- 1
- 0
- 约2.24万字
- 约 43页
- 2018-06-14 发布于福建
- 举报
第8章图形与文本
第8章图形和文本 8.1设备环境和简单数据类 8.2图形设备接口 8.3图形绘制 8.4字体与文字处理 8.1设备环境和简单数据类 8.1.1设备环境和简单数据类 设备环境类CDC提供了绘制和打印的全部函数。为了能让用户使用一些特殊的设备环境,CDC还派生了CPaintDC、CClientDC、CWindowDC和CMetaFileDC类。 (1)CPaintDC比较特殊,它的构造函数和析构函数都是针对OnPaint进行的,但用户一旦获得相关的CDC指针,就可以将它当成任何设备环境(包括屏幕、打印机)指针来使用。CPaintDC类的构造函数会自动调用BeginPaint,而它的析构函数则会自动调用EndPaint。 (2)CClientDC只能在窗口的客户区(不包括边框、标题栏、菜单栏以及状态栏)中进行绘图,点(0,0)通常指的是客户区的左上角。而CWindowDC允许在窗口的任意位置中进行绘图,点(0,0)指整个窗口的左上角。CWindowDC和CClientDC构造函数分别调用GetWindowDC和GetDC,但它们的析构函数都是调用ReleaseDC函数。 (3)CMetaFileDC封装了在一个Windows图元文件中绘图的方法。图元文件是一系列与设备无关的图片的集合,由于它对图象的保存比像素更精确,因而往往在要求较高的场合下使用,例如AutoCAD的图像保存等。目前的Windows已使用增强格式(enhanced-format)的32位图元文件来进行操作。 8.1设备环境和简单数据类 8.1.2坐标映射 为了能保证打印的结果不受设备的影响,定义了一些映射模式,这些映射模式决定了设备坐标和逻辑坐标之间的关系,如表。 这样,我们就可以通过调用CDC::SetMapMode(int nMapMode)来设置相应的映射模式。 在MM_ISOTROPIC映射模式下,纵横比总是1:1;但在MM_ANISOTROPIC映射模式下,x和y的比例因子可以独立地变化,即圆可以被拉扁成椭圆形状。 在映射模式MM_ANISOTROPIC和MM_ISOTROPIC中,调用CDC:: SetWindowExt(设置窗口大小)和CDC::SetViewportExt(设置视口大小)函数来设置所需要的比例因子。 所谓“窗口”,可以理解成是一种逻辑坐标下的窗口,“视口”是实际看到的那个窗口。根据“窗口”和“视口”的大小就可以确定x和y的比例因子,它们的关系如下: x比例因子 = 视口x大小/ 窗口x大小 y比例因子 = 视口y大小/ 窗口y大小 8.1设备环境和简单数据类 (1)创建一个默认的单文档应用程序Ex_Draw。 (2)在CEx_DrawView::OnDraw函数中添加下列代码: void CEx_DrawView::OnDraw(CDC* pDC) { CEx_DrawDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CRect rectClient; GetClientRect(rectClient); // 获得当前窗口的客户区大小 pDC-SetMapMode(MM_ANISOTROPIC); // 设置MM_ANISOTROPIC映射模式 pDC-SetWindowExt(1000,1000); // 设置窗口范围 pDC-SetViewportExt(rectClient.right,-rectClient.bottom);// 设置视口范围 pDC-SetViewportOrg(rectClient.right/2,rectClient.bottom/2); pDC-Ellipse(CRect(-500,-500,500,500)); } (3)编译运行,如图。 8.1设备环境和简单数据类 8.1.3CPoint、CSize和CRect CPoint、CSize和CRect类的构造函数 CPoint类带参数的常用构造函数原型如下: CPoint( int initX, int initY ); CPoint( POINT initPt ); CSize类带参数的常用构造函数原型如下: CSize( int initCX, int initCY ); CSize( SIZE initSize ); CRect类带参数的常用构造函数原型如下: CRect( int l, int t, int
您可能关注的文档
- 第50章 骨与软骨.doc
- 第4章_MATLAB计算的可视化与GUI设计.ppt
- 第5.2课尊重与维护隐私权的课件ppt.ppt
- 第5-6章_建设工程监理与设计合同管理.ppt
- 第5章 文档与视.ppt
- 第3节植物病虫害的防治原理与方法.ppt
- 第5章 元件与实例的使用.ppt
- 第3章管理文件夹与文件.doc
- 第5章 管段流量管径与水头损失.ppt
- 第5章 Windows 2000 Server 用户与组管.ppt
- LED照明创造美好新生活——访北京中科慧宝科技有限公司总裁胡冰.pdf
- 2026年《Python程序设计》试题库200道及完整答案(全优).docx
- “十五五”规划核心精神解读与落地实践指南【深度解读】.pdf
- 2026辽宁沈汽新致(沈阳)企业管理有限公司实习生招聘3人备考题库附答案.docx
- 2025年重庆市中考语文试卷及答案.pdf
- 《危险货物道路运输安全管理规范》深度解读与实施指南.pdf
- 《远程教育学》考试要点总结.pdf
- iPACS-5747站用变保护测控装置技术说明书V2.01.pdf
- 航空发动机转动件用高纯GH4169合金 第2部分 高强锻件-编制说明.pdf
- 110个写语言的成语.pdf
最近下载
- 《阿尔茨海默病及相关痴呆的营养预防和干预专家共识(2025)》解读PPT课件.pptx VIP
- 关于高校基层党组织机构优化设置的探讨.doc VIP
- 2025江苏医药职业学院单招《英语》真题附参考答案详解【精练】.docx VIP
- 第一单元第一课《领略丝路遗珍》课件2025-2026学年人美版初中美术八年级下册.pptx VIP
- 岩土工程勘察收费标准(完整版).docx VIP
- 2025四川省中职学生单招考试英语答案 .pdf VIP
- 快消年度工作总结.pptx VIP
- 慢性肾脏病相关瘙痒管理中国专家共识解读(PPT课件.pptx VIP
- 企业所得税年度纳税申报表A类.pdf VIP
- 2022高二英语人教版新教材选择性必修三课文及翻译(英汉对照).pdf VIP
原创力文档

文档评论(0)