- 1、本文档共61页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]vc60第七章
第7章图形和文本输出 7.1 设备上下文和映射模式 以往许多MSDOS程序采用直接向视频存储区或打印机端口输送数据,这种做法不利之处是需要各种显示卡(低分辨率彩色图形显示卡、加强图形显示卡以及图像图形阵)或打印机驱动程序,支持所有这些设备意味着要用大量的编程来包含这些驱动程序(为每一个设备编写不同的代码)。 为了减轻开发程序的难度,Windows提供了一个抽象的接口,图形设备接口Graphics Device Interface(GDI)。另外,Windows还提供了各种显示卡及打印机的驱动程序,这样在写程序时就可以不必关心显示卡和打印机的类型,简化了程序开发的难度。 其实,GDI是微软公司提供的一组绘图函数,通常称之为GDI函数。使用这些函数可以绘制各种图形。 设备上下文的英文全称是Device Context,简称为DC。设备上下文是用来绘制图形的逻辑设备,编程人员可以在该设备上绘制直线、曲线和立方体等各式各样的几何图案及在设备上输出文字。 在开发应用程序时往往要在输出设备上输出程序的运行结果。输出设备通常指的是显示器和打印机,但程序员需要了解显示器和打印机的特性才能将结果显示在输出设备上,而了解显示器和打印机特性这个过程会花去程序员的大部分时间,为减少开发应用程序的开发时间及开发难度,就提出设备上下文这个概念。通过使用设备上下文,编程人员可以不必关心输出设备的具体特性,直接绘制最终的结果,而余下的工作都交给系统来完成。 在Windows应用程序中,每个窗口都关联有设备上下文,用户只要获得了窗口的设备上下文,就可以在窗口中绘制各种文本、图形图像等信息了。 7.1 设备上下文和映射模式 CDC *pDC=GetDC(); pDC-MoveTo(m_ptOrigin); pDC-LineTo(point); ReleaseDC(pDC); 7.1 设备上下文和映射模式 7.1 设备上下文和映射模式 7.2 位图 在Windows中显示图像都是先将预先准备好的图像复制到显示区域中,早期的Windows版本中位图文件格式与显示设备有关,一般是存储在资源文件中,在加载的时候只需要通过资源ID号就可以将图像装入,我们把这种图像格式称为设备相关位图,简称DDB(device-dependent bitmap)文件格式; 从Windows3.0以后,位图文件格式就与显示设备无关了,我们就称这种格式为设备无关位图,简称DIB(device-independent bitmap)格式。 但是Windows系统中仍然保留了DDB位图,只不过在将图像以位图的格式存储时系统会推荐你使用DIB格式,目的就是所存储的图像能够在任意显示设备上显示。 7.2 位图 7.3 图形输出 7.3 图形输出 7.3 图形输出 函数CreatePenIndirect()可以通过结构LOGPEN创建画笔。该函数语法结构如下: BOOL CreatePenIndirect(LPLOGPEN lpLogPen); lpLogPen为指向LOGPEN结构的指针。若该函数成功执行,则返回画笔句柄。 另外,MFC还预定义了3种画笔,分别是BLACK_PEN(黑色笔)、WHITE_PEN(白色笔)和NULL_PEN(空笔)。这些画笔可以由函数CreateStockObject()创建,并返回画笔句柄。系统默认的画笔为黑色画笔。 7.3 图形输出 下面利用CreateSolidBrush方法创建一个蓝色的画刷,并将其填充在矩形中。 例如: 填充矩形的程序设计步骤如下。 (1)新建一个对话框应用程序。 (2)在对话框类的OnPoint方法中添加如下代码: void CDrawDlg2Dlg::OnPaint() { CDC* pDC = GetDC(); //获取对话框的设备上下文指针 CBrush brush; //定义画刷对象 brush.CreateSolidBrush(RGB(0,0,255)); //创建蓝色的画刷 pDC-SelectObject(brush); //选中画笔 CRect rc(80,30,200,80); pDC-FillRect(rc,brush); //利用画笔绘制矩形 pDC-DeleteDC(); //代码省略 } void CShuaziView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code
您可能关注的文档
最近下载
- 标准图集-20S515-钢筋混凝土及砖砌排水检查井.pdf VIP
- 互联网+创新创业大赛-“大学生外卖订餐平台项目商业计划书APP”PPT幻灯片课件.ppt
- 2023年秋江苏开放大学计算机应用基础第二次形成作业(Word 操作)上海旅游计划书+姓名(占形考成绩的20%).pdf VIP
- Cadence及MEDICI使用说明详细版.pdf VIP
- 银行信贷业务知识培训.pptx
- T_CI 032-2022 矿山酸性污染全过程控制与治理技术指南.docx
- 酒店类职业生涯规划书.pdf
- 关于人民政府办公室全套工作制度汇编(25篇).docx VIP
- 医院保洁员院感知识培训.docx VIP
- AMS2759_12A 国外国际标准规范.pdf
文档评论(0)