




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第十章通过屏幕绘制、本章要点、本章的学习,让读者:了解设备环境和设备环境类,使用设备环境类和图形设备接口(GDI )对象绘制并掌握位图的显示技术熟练掌握工具栏,菜单设置掌握快捷菜单画出“直线”、“长方形”、“圆角长方形”、“椭圆”的基本图形。 (2)可以设定刷子的粗细(线宽)和描绘色。 (3)菜单工具栏的提供,10.2设备环境和设备环境等级,10.2.1概要设备环境等级CDC及其派生等级识别10.2.2设备环境等级,如图10-2所示,(1) 绘制在视图类OnDraw函数上的cgdiobjectcpencbrushcfontcbitmapcpalettecrgn图10-4 MFC的gdi类继承图
2、cpen (笔刷类) cbrush (笔刷类) cfont (字体) 有两种方法。 配置和初始化对象由具有残奥仪表的构造函数一步完成。 (2)构建和初始化分两步完成。 结构由没有残奥仪表的构造函数完成。 初始化通过初始化函数完成。 /获取显示设备环境DC的指针pDC CPen newPen。 PS _ solid,2,RGB (0,255,0 ):cpen * pold pen=Pdc -选择对象(/发布显示DC, 10.3.2刷子: CBrush类必须先构建刷子和刷子对象,然后才能使用刷子和刷子,/蓝刷子(2)的配置和初始化分两个阶段完成,配置完成时没有残奥计,构造函数完成,初始化是初始化函
3、数例如: c刷新; 新建固态刷新(RGB (0,255,0 ) ); 例如,用绿色、宽度为2像素的实心填充绘制椭圆,用蓝色画笔填充椭圆内部的段如下所示(如果不填充椭圆内部,则省略相关的画笔语句)。 CDC* pDC=GetDC (); /获取显示设备环境DC的指针pDC CPen newPen。 新创建笔(PS _ solid,2,RGB (0,255,0 ) ):c刷新; 新建固态刷新(RGB (0,255,0 ) ); cpen * pold pen=Pdc-select object (/选择创建的笔刷作为内存DC,同时选择原始笔刷,PDC-move to (10,10 ); 调用Mov
4、eTo函数并调用点(10,10 ) PDC-lineto (100,100 ); 调用LineTo函数并绘制直到点(100,100 ) PDC-ellipse (120,120,160,160 )。 /椭圆函数调用ellipse PDC -选择对象(多边形笔)。 /在内存DC中恢复现有的笔刷PDC-select对象(pold brush )。 /恢复内存DC中原有的刷子ReleaseDC(pDC )。 /释放显示DC,10.3.3字体: CFont类、字体的创建分两步完成,(1)定义CFont类的对象,应用框架后调用构造函数。 例如:我的字体; (2)调用cfont类的字体创建函数,使构建的c
5、font对象与Windows的某种字体相关联。布尔创建字体(int nheight,/字体高度int nWidth,/字符平均宽度int nEscapement,/文本行角度int nOrientation,/字符角度int /斜体BYTE bUnderline,/下划线byte cstrrine /删除线BYTE nCharSet,/字符集BYTE nOutPrecison, /字体输出结果和请求的匹配度bytenclls /修剪区域外的字符BYTE nQuality,/字体属性的正确性BYTE nPitchAnFamily,/字体间隔和字体簇BYTE lpszFacename /修剪字体名
6、称的方法10.4向量图形,10.4.1绘图模式10.4.2基本向量图形1点2直线,BOOL LineTo(int x,int y ); 波尔行星(点); 三矩形,划分直流(this ); 直流反馈(120、120、160、160 ); 四、椭圆、圆柱体(一条直线、一条直线、二条直线、一条直线); bool ellipse (LPC rect LP rect ):10.5位图表示10.5.1 CBitmap类CBitmap类封装了在Windows中执行GDI位图操作所需的大多数函数。其中LoadBitmap是位图初始化函数,该函数的原型如下:bool load bitmap (lpctstrlp
7、szresourcename ); 布尔加载位图(单元名资源);CBitmap类的创建位图、创建兼容性位图、 调用CreateBitmapIndirect和显示10.5.2 GDI位图调用cdc:createcompatibledc函数以创建适当的位图对象,并将该位图保存在内存中创建与环境兼容的内存设备环境调用CDC:SelectObject函数将位图对象选择为内存设备环境CDC:BitBlt或CDC 33603360 stretchbll 使用后,返回原来的存储设备环境。 查看10.5.3 BMP文件,(1)定义用于读取指定位图文件的HBITMAP类型变量bitmap,(2)创建兼容的内存设
8、备描述表,并使用SelectObject ()将位图写入内存设备描述表、编程点、10.6制作程序、10.6.1制作程序项目、10.6.2工具栏的可视化设定修订、1编辑程序工具按钮、2设定工具按钮、10.7实现程序的绘制功能、10.7.1设定修订cmydrr 布鲁米特: 颜色m _颜色; 英寸宽度; intm _类型; CBitmap* m_pbmp; CDC* m_pmdc; int m_nmy; int m_nmx; 在构造函数中,初始化数据成员,并将m_bdoing=FALSE; m _类型=0; m _宽度=1; 指定颜色=RGB (0,0,255 ) :指定颜色=新CDC; m _ p
9、bmp=新建位图; 3、析构函数、有内存申请的变量delete m_pmdc; 删除m _ pbmp; 10.7.2初始化绘图环境,向视图类添加WM_CREATE消息响应函数,并向函数编写代码。 m _ nmx=获得性能(sm _ CX屏幕); 中国语法学院: CDC * PDC=getdc (); m _ pmdc -创建兼容性(PDC ); 创建可兼容性映射(PDC、m_nmx、m_nmy ); 选择对象(m _ pbmp ),其中,cbitmap * p oldbitmap=m _ pmdc -选择对象。 c刷牙; 布鲁斯. createstockobject (white _ brus
10、h ); 严重损坏(-1、-1、m_nmx、m_nmy ); m_pmdc-FillRect(rect,10.7.3是工具栏按钮的代码,1是颜色按钮的COMMAND消息的响应函数,2是程序代码,添加voidcmydrawview:330造颜色通用对话框日语中的“RGB结果=m _ color”怎么说? DLG.domodal ()=idok m _ color=DLG.getcolor (); /将取得的选择的颜色分配给当前的刷子颜色变量,记述10.7.4响应鼠标动作代码,WM_LBUTTONDOWN (按下左键) WM_MOUSEMOVE (鼠标移动):WM_LBUTTONUP (按下左键松
11、开)。 用鼠标画画,需要处理三个鼠标动作。 对10.7.5ondraw ()函数进行修改,获得voidcmydrawview :3360 ondraw (CDC * PDC ) cmydrawdoc * PDD assert _ valid (pdoc ); /todo 3360 addrawcodefornativedataherecbitmap * pol dbmp=m _ pmdc -选择对象(m _ pbmp )。 PDC-bitblt (0,0,m_nmx,m_nmy,m_pmdc,0,0,src复制):m_pmdc选择对象(pol dbmp ) :将菜单添加到10.8绘图程序中,然
12、后单击菜单项和工具栏中的波也就是说,如果ID标识符相同,则完成相同的操作。 因此,下一项工作是编辑菜单资源,并设置与工具栏上的按钮相对应的相同ID,从而更新键盘加速器的附加菜单项的状态。 编辑10.8.1菜单资源,打开1菜单资源编辑器2添加菜单项目3添加菜单选项,添加10.8.2键盘加速键,添加1选择“直线”的快捷方式Ctrl L 2其自身预测菜单10.8.3菜单项目的状态更新、SetCheck Enabele/Disable方式:禁止(灰色显示)或重启菜单命令的方式。、菜单项状态更新控制的两种方式:完善10.9交互手段,添加快捷菜单,编辑10.9.1快捷菜单资源,建立10.9.2快捷菜单与CMainFrame类的关联,1 快捷菜单资源:菜单加载菜单(IDR _ popup _ menu ) /快捷菜单资源: 支持跟踪支持菜单(TPM _ left对齐| TPM _ right button,点. x,点. y, this ) :10.10相关知识、10.10.1 Invalidate ()函数、Invalidate ()函数是CWnd类的成员函数,使整个客户区域无效,引起窗口重画,并调用视图类的OnDraw ()函数、10.10.2 CPoint类、1CPoint构造函数2. CPoint类公用操作符、10.10.3 CRe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国投资促进机构行业发展策略与趋势分析报告
- 中考散打考试题库及答案
- 2026届内蒙古阿荣旗第一中学化学高三上期末教学质量检测模拟试题含解析
- 甘肃省会宁县2026届高三化学第一学期期中考试模拟试题含解析
- 山东省菏泽市加定陶山大附中、思源学校、郓城一中等十校2026届高一化学第一学期期中复习检测试题含解析
- 广东佛山市禅城区2026届化学高三第一学期期末调研模拟试题含解析
- 2025届安徽省合肥市集团校高三“最后一卷”政治试题(含答案)
- 希赛证券从业课件
- 2026届福建省建瓯市第二中学高二化学第一学期期末教学质量检测试题含答案
- 2025年紧急医学救治与护理能力考核试题及答案
- 基本药物临床应用管理制度
- 肿瘤恶液质营养治疗指南
- 美术实训室功能设计方案
- 护理优势专科汇报
- 放射科新技术介绍
- 银行职工反诈工作总结
- 设备安装管理培训课件
- 老年人转运照护-轮椅运转
- 国家电网公司供电企业劳动定员标准
- 7-聊城东制梁场80t龙门吊安拆安全专项方案-八局一-新建郑州至济南铁路(山东段)工程ZJTLSG-2标段
- 中兴 ZXNOE 9700 系统介绍
评论
0/150
提交评论