【教学课件】第5章图形和文本输出.ppt
《【教学课件】第5章图形和文本输出.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第5章图形和文本输出.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5章图形和文本输出图形设备接口CGdiObject对象CDC文本处理绘图处理图形设备接口GDI(graphics device interface)矢量图形创建线和填充图形光栅图形位图文本输出以逻辑坐标为单位计算文本输出位置绘图工具GDI对象GdiObjectCGdiObject是一个抽是一个抽象类,该类不能直接象类,该类不能直接定义对象。必须使用定义对象。必须使用它的派生类它的派生类设备上下文DCdevice contextGDI创建用来代表设备连接的数据结构主要功能:允许应用程序使用一个输出设备提供窗口应用程序,设备驱动,和输出设备之间的连接保存当前信息,例如在一个窗口内绘图使用的颜色,
2、画笔的宽度、画刷的类型等等保存窗口剪取区域(clipping region),限制程序输出到输出设备中窗口覆盖的区域设备上下文类CDCCObjectCDCCClientDCCMetaFileDCCPanitDCCWindowDCOnDraw函数void CMyView:OnDraw(CDC*pDC)CMyDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);/TODO:add draw code for native data here pDC-TextOut(1,1,”hello world!”);WM_PAINT消息产生WM_PAINT消息的场合通常有 窗口移
3、动后及最大化,最小化后的刷新。被覆盖区域的刷新,如下拉菜单覆盖的区域。无效区域产生后的刷新,如执行滚动条操作,将一区域移动至不可见。WM_PAINT消息人为地生成一个绘制消息,重绘窗口 的方法:Invalidate(true);CRect rect(1,1,300,300);InvalidateRect(&Rect,true);获取设备上下文 的方法接受一个参数为指向CDC对象的指针 void CMyView:OnDraw(CDC*pDC);构造CClientDC对象 CClientDC dc(this);接受一个参数为指向CDC对象的指针void CMyView:OnDraw(CDC*pDC
4、)CMyDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);/TODO:add draw code for native data here /在坐标为10,10的位置上画一点,颜色黑色 pDC-pDC-SetPixel(CPoint(10,10),RGB(0,0,0);SetPixel(CPoint(10,10),RGB(0,0,0);参数为指参数为指向向CDC对对象的指针象的指针构造构造CClientDC对象对象构造CClientDC对象 Void CMyView:OnLButtonDown(UNIT nFlags,CPoint point)/TODO:ad
5、d draw code for native data here CClientDC dc(this);CClientDC dc(this);/this 指针将CMyView赋值给创建的dc对象 dc.SetPixel(point,RGB(255,0,0)dc.SetPixel(point,RGB(255,0,0);CView:OnLButtonDown(nFlags,point);CView:OnLButtonDown(nFlags,point);任务1编写一个单文档MFC(EXE)程序,在视图类增加成员变量,追踪鼠标的左键双击位置的坐标,并输出详见例5-1 处理文本 设置文本颜色 设置文本
6、显示属性 设置字体 格式化文本 文本输出函数 设置文本颜色COLORREF SetTextColor(COLORREF crColor);COLORREF SetBkColor(COLORREF crColor);颜色的表示/基本三元色基本三元色COLORREF crRed=RGB(255,0,0);COLORREF crRed=RGB(255,0,0);COLORREF crGreen=RGB(0,255,0);COLORREF crGreen=RGB(0,255,0);COLORREF crBlue=RGB(0,0,255)COLORREF crBlue=RGB(0,0,255)/16-c
7、olor/16-color设备支持颜色设备支持颜色const COLORREF g_crBlack=RGB(0,0,0);const COLORREF g_crBlack=RGB(0,0,0);const COLORREF g_crYellow=RGB(255,255,0);const COLORREF g_crYellow=RGB(255,255,0);const COLORREF g_crDkYellow=RGB(128,128,0);const COLORREF g_crDkYellow=RGB(128,128,0);const COLORREF g_crRed=RGB(255,0,0)
8、;const COLORREF g_crRed=RGB(255,0,0);const COLORREF g_ crDkRed=RGB(128,0,0);const COLORREF g_ crDkRed=RGB(128,0,0);const COLORREF g_crMagenta=RGB(255,0,255);const COLORREF g_crMagenta=RGB(255,0,255);const COLORREF g_ crDkMagenta=RGB(128,0,128);const COLORREF g_ crDkMagenta=RGB(128,0,128);const COLOR
9、REF g_crBlue=RGB(0,0,255);const COLORREF g_crBlue=RGB(0,0,255);const COLORREF g_ crDkBlue=RGB(0,0,128);void CMyView:OnDraw(CDC*pDC)void CMyView:OnDraw(CDC*pDC)CMyDoc*pDoc=GetDocument();CMyDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);ASSERT_VALID(pDoc);pDC-SetTextColor(RGB(255,0,0);pDC-SetTextColor(RGB(
10、255,0,0);pDC-SetBkColor(RGB(0,0,0);pDC-SetBkColor(RGB(0,0,0);CString str;CString str;str.Format(str.Format(鼠标左键双击的位置是鼠标左键双击的位置是%d,%d,d,%d,m_LPoint.x,m_LPoint.y);m_LPoint.x,m_LPoint.y);pDC-TextOut(0,0,str);pDC-TextOut(0,0,str);设置文本显示属性 函数函数说明说明SetBkModeSetBkModeGetBkModeGetBkMode设置和获取背景模式设置和获取背景模式Set
11、TextAlignSetTextAlignGetTextAlignGetTextAlign设置和获取对齐方式设置和获取对齐方式SetTextJusttification SetTextJusttification SetTextCharaterExtraSetTextCharaterExtra调整文本调整文本设置字体 定义CFont对象调用CreateFont函数创建字体将创建的字体对象选入DC,并保存前一个被选入DC的字体对象void CMyView:OnDraw(CDC*pDC)void CMyView:OnDraw(CDC*pDC)CMyDoc*pDoc=GetDocument();CM
12、yDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);ASSERT_VALID(pDoc);CFont NewFont;CFont NewFont;NewFont.CreateFont(65,65,0,0,FW_DONTCARE,NewFont.CreateFont(65,65,0,0,FW_DONTCARE,true,false,false,DEFAULT_CHARSET,true,false,false,DEFAULT_CHARSET,OUT_CHARACTER_PRECIS,OUT_CHARACTER_PRECIS,CLIP_CHARACTER_PRECI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 图形 和文 输出
限制150内