图形设备接口
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
CBrush类
BOOL CreateSolidBrush ( COLORREF crColor ); BOOL CreateHatchBrush ( int nIndex,
COLORREF crColor );
阴影风格 HS_BDIAGONAL HS_CROSS HS_DIAGCROSS
说明
返回Windows预定义的库存画笔、画刷 或字体的句柄
删除连接到CGdiObject
删除任何由FromHandle所创建的临时 CGDIObject对象
使Windows GDI对象与CGDIObject对象 断开连接,并返回Windows GDI对象的 句柄
除非this为NULL时该成员函数返回
3.3 画笔与画刷
使用CImage显示图片
(1)在项目中的stdafx.h文件加入
#include <atlimage.h>
(2)视图类 CImage m_imgBody;
(3)CA09View::CA09View() {
m_imgBody.Load("vc.bmp"); }
(4)void CA09View::OnDraw(CDC* pDC)
PS_DASHDOTDOT 由短线、点、点构成的虚线
PS_NULL
创建空(空白)画笔
CDC::SelectObject函数原型
CPen* SelectObject( CPen* pPen ); CBrush* SelectObject( CBrush* pBrush ); CFont* SelectObject( CFont* pFont );
Visual C++程序设计
杨琦 计算机教学实验中心
西安wenku.baidu.com通大学
授课内容
3.1 图形设备接口的基本概念 3.2 绘图工具类 3.3 画笔与画刷 3.4 位图 3.5 字体 3.6 绘图模式 3.7 库存图形对象 3.8 典型案例
3.1 设备环境类和图形对象
图形设备接口GDI (Graphics Device Interface,GDI)
从左下角到右上角的45度斜线/////
水平线与垂直线+++++ 相互垂直的45度线XXXXX
HS_FDIAGONAL 45度向下\\\\\\
HS_HORIZONTAL HS_VERTICAL
水平线----垂直线|||||
效果图:
【例3-1】 绘制蓝天、草地和大山
void CMyView::OnDraw(CDC* pDC) { CBrush *pOldBrush, brushSky, brushGrass, brushMoutain; CRect rect; GetClientRect(&rect); brushSky.CreateSolidBrush(RGB(127, 200, 255)); // 画天空 pOldBrush = pDC->SelectObject(&brushSky); pDC->Rectangle(rect); brushGrass.CreateSolidBrush(RGB(0, 255, 0)); // 画草地 pDC->SelectObject(&brushGrass); rect.top = 300; pDC->Rectangle(rect);
CPen类:
BOOL CPen:: CreatePen (int nPenStyle, int nWidth, COLORREF crColor);
第1个参数是画笔样式,可取
PS_SOLID
创建实线笔
PS_DASH
创建由短线构成的虚线
PS_DOT
创建由点构成的虚线
PS_DASHDOT
创建由短线和点构成的虚线
CPen类
CPen类
void CMyView::OnDraw(CDC* pDC) { CPen penMountain,*pOldpen; penMountain.CreatePen(PS_SOLID,3,RGB(125, 50, 0)); pOldpen=pDC->SelectObject(&penMountain); CPoint m_pointMountain[5]; m_pointMountain[0] = CPoint(100, 200); m_pointMountain[1] = CPoint(200, 100); m_pointMountain[2] = CPoint(300, 150); m_pointMountain[3] = CPoint(400, 50); m_pointMountain[4] = CPoint(600, 200); pDC->Polyline(m_pointMountain, 5); pDC->MoveTo(0,200); pDC->LineTo(700,200); pDC->SelectObject(pOldpen);
brushMoutain.CreateSolidBrush(RGB(125, 50, 0)); pDC->SelectObject(&brushMoutain); CPoint m_pointMoutain[5]; m_pointMoutain[0] = CPoint(200, 300); m_pointMoutain[1] = CPoint(300, 200); m_pointMoutain[2] = CPoint(400, 250); m_pointMoutain[3] = CPoint(500, 150); m_pointMoutain[4] = CPoint(700, 300); pDC->Polygon(m_pointMoutain, 5); pDC->SelectObject(pOldBrush); }
设备环境类:CPaintDC 、CWindowDC 等
3.2 绘图工具类
CGdiObject类的常用成员函数
函数 Attach CreateStockObject DeleteObject DeleteTempMap Detach
GetSafeHandle
含义
链接一个Windows GDI对象到一个 CGdiObject对象
CBrush类
BOOL CreateSolidBrush ( COLORREF crColor ); BOOL CreateHatchBrush ( int nIndex,
COLORREF crColor );
阴影风格 HS_BDIAGONAL HS_CROSS HS_DIAGCROSS
说明
返回Windows预定义的库存画笔、画刷 或字体的句柄
删除连接到CGdiObject
删除任何由FromHandle所创建的临时 CGDIObject对象
使Windows GDI对象与CGDIObject对象 断开连接,并返回Windows GDI对象的 句柄
除非this为NULL时该成员函数返回
3.3 画笔与画刷
使用CImage显示图片
(1)在项目中的stdafx.h文件加入
#include <atlimage.h>
(2)视图类 CImage m_imgBody;
(3)CA09View::CA09View() {
m_imgBody.Load("vc.bmp"); }
(4)void CA09View::OnDraw(CDC* pDC)
PS_DASHDOTDOT 由短线、点、点构成的虚线
PS_NULL
创建空(空白)画笔
CDC::SelectObject函数原型
CPen* SelectObject( CPen* pPen ); CBrush* SelectObject( CBrush* pBrush ); CFont* SelectObject( CFont* pFont );
Visual C++程序设计
杨琦 计算机教学实验中心
西安wenku.baidu.com通大学
授课内容
3.1 图形设备接口的基本概念 3.2 绘图工具类 3.3 画笔与画刷 3.4 位图 3.5 字体 3.6 绘图模式 3.7 库存图形对象 3.8 典型案例
3.1 设备环境类和图形对象
图形设备接口GDI (Graphics Device Interface,GDI)
从左下角到右上角的45度斜线/////
水平线与垂直线+++++ 相互垂直的45度线XXXXX
HS_FDIAGONAL 45度向下\\\\\\
HS_HORIZONTAL HS_VERTICAL
水平线----垂直线|||||
效果图:
【例3-1】 绘制蓝天、草地和大山
void CMyView::OnDraw(CDC* pDC) { CBrush *pOldBrush, brushSky, brushGrass, brushMoutain; CRect rect; GetClientRect(&rect); brushSky.CreateSolidBrush(RGB(127, 200, 255)); // 画天空 pOldBrush = pDC->SelectObject(&brushSky); pDC->Rectangle(rect); brushGrass.CreateSolidBrush(RGB(0, 255, 0)); // 画草地 pDC->SelectObject(&brushGrass); rect.top = 300; pDC->Rectangle(rect);
CPen类:
BOOL CPen:: CreatePen (int nPenStyle, int nWidth, COLORREF crColor);
第1个参数是画笔样式,可取
PS_SOLID
创建实线笔
PS_DASH
创建由短线构成的虚线
PS_DOT
创建由点构成的虚线
PS_DASHDOT
创建由短线和点构成的虚线
CPen类
CPen类
void CMyView::OnDraw(CDC* pDC) { CPen penMountain,*pOldpen; penMountain.CreatePen(PS_SOLID,3,RGB(125, 50, 0)); pOldpen=pDC->SelectObject(&penMountain); CPoint m_pointMountain[5]; m_pointMountain[0] = CPoint(100, 200); m_pointMountain[1] = CPoint(200, 100); m_pointMountain[2] = CPoint(300, 150); m_pointMountain[3] = CPoint(400, 50); m_pointMountain[4] = CPoint(600, 200); pDC->Polyline(m_pointMountain, 5); pDC->MoveTo(0,200); pDC->LineTo(700,200); pDC->SelectObject(pOldpen);
brushMoutain.CreateSolidBrush(RGB(125, 50, 0)); pDC->SelectObject(&brushMoutain); CPoint m_pointMoutain[5]; m_pointMoutain[0] = CPoint(200, 300); m_pointMoutain[1] = CPoint(300, 200); m_pointMoutain[2] = CPoint(400, 250); m_pointMoutain[3] = CPoint(500, 150); m_pointMoutain[4] = CPoint(700, 300); pDC->Polygon(m_pointMoutain, 5); pDC->SelectObject(pOldBrush); }
设备环境类:CPaintDC 、CWindowDC 等
3.2 绘图工具类
CGdiObject类的常用成员函数
函数 Attach CreateStockObject DeleteObject DeleteTempMap Detach
GetSafeHandle
含义
链接一个Windows GDI对象到一个 CGdiObject对象