- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MFC经典绘图方法总结
MFC经典绘图方法总结
Windows 绘图的实质就是利用 windows提供的图形设备接口GDI(Graphics Device Interface)将图形会制在显示器上。
为了支持GDI绘图,MFC提供了两种重要的类:
设备上下文DC(Device Context)类,用于设置绘图属性和绘制图形;
绘图对象类,封装了各种GDI绘图对象,包括画笔、刷子、字体、位图、调色板和区域。
在MFC中,CDC是设备上下文类的基类,派生类包括:CClientDC, CPaintDC, CWindowDC, CMetaFileDC类
CClientDC 客户区设备上下文, 绘制客户区时
CPaintDC 一般发生在窗口需要重绘时
CWindwDC 可以绘制整个窗口,通常在窗口WM_NCPAINT消息的响应函数CWnd::OnNCPaint()中使用
CMetaFileDC 专门用于图元文件的绘制,图元文件记录一组GDI命令,重建图形输出。
CDC包含m_hDC和 m_hAttribDC二个设备上下文。 CDC指导所有对m_hDC的输出GDI调用(SetTextColor)以及对m_hAttribDC的大部分属性GDI调用(GetTextColor)。
CDC对象的重要函数如下:
1、为指定设备创建上下文 virtual BOOL CreateDC(...)
比如创建一个为屏幕的设备上下文
CDC dc;
dc.CreateDC(DISPLAY, NULL, NULL,NULL);
2、创建内存设备上下文,与指定设备上下文兼容 virtual BOOL CreateCompatibleDC( CDC * pDC)
3、删除CDC对象对应的Windows设备上下文, 通常不调用该函数而是使用析构程序 virtual BOOL DeleteDC();
4、将HDC句柄转化为设备上下文的句柄: CDC *pDC=CDC::FromHandle( hDC )
5、选择GDI对象入选到设备上下文中,一共有五种形式:
CPen * SelectObject( CPen * pPen) ;
CBrush * SelectObject( CBrush * pBrush) ;
virtual CFont * SelectObject( CFont * pFont) ;
CBitmap * SelectObject( CBitmap * pBitmap) ;
int SelectObject( CRgn * pRgn) ;
例:
Cpen cpen;
pen.CreatePen( PS_SOLID, 2, RGB(255,0,0) );
Cpen *pOldPen=(CPen*)pDC-SelectObject(pen); //设置新画笔,记录旧画笔
....
pDC-SelectObject(pOldPen); //还原
三种方法创建画笔
1/构造函数:
CPen();
CPen( int nPenStyle, int nWidth, COLORREF crColor );
CPen(...)略
2/CreatePen( int nPenStyle, int nWidth, COLORREF crColor )
3/CreatePenIndirect( LPLOGPEN lpLogpen )
typedef struct tagLOGPEN{
UINT lopnStyle;
POINT lopnWidth;
COLORREF lopnColor;
}LOGPEN, *LPLOGPEN;
例:
LOGPEN lppn;
lppn.lopnColor=RGB(255,0,0);
lppn.lopnStype=PS_DASHDOT;
lgpn.lopnWidth.x=2;
lgpn.lopnWidth.y=2;
CPen pen;
pen.CreatePenIndirect( lppn );
三种方法创建
1/构造函数:
CBrush();
CBrush(COLROREF crColor);
CBrush(int nIndex, COLORREF crColor);
nIndex 哪种类型的网格, HS_BDIAGONAL HS_CROSS HS_VERTICAL HS_HORIZON
您可能关注的文档
- GJB179A抽样表.docx
- H3CACAP注册脚本接及常用命令操作手册.doc
- GSM900数字蜂窝移动通信基站收发信机设备介绍.doc
- hadoop安装指南(非常详细,包成功).docx
- HD-SHM_外板系统.doc
- GCr152Gr13热处理实验报告.doc
- H3CARP病毒专家会诊室.docx
- HADOOP笔试.doc
- HR必备-2013年培训计划和需求制定方案与流程.doc
- GIS刀闸因机构问题造成刀闸未合到位,引起动触头放电故障分析报告.doc
- 2024-2025学年统编版(2024)道德与法治小学一年级上册每课教学反思(含教材目录) .docx
- 2023年7月国家开放大学专本科《法律文书》期末纸质考试试题及答案 (2).pdf
- Unit 2【单元测试·提升卷】-2023-2024学年八年级英语上册单元速记巧练(牛津译林版) .pdf
- 某某房产管理服务中心(所)各岗位廉政风险点及防控措施一览表.pdf
- 棒棒冰相关行业投资规划报告范本 .docx
- 五年级语文上册 第六七单元达标检测卷(原卷+答案)2024-2025学年第一学期(统编版) .pdf
- 计算机及外部设备维修服务相关行业投资方案 .pdf
- 湖北省武汉市新河街学校小学部小升初数学试卷(含解析) .pdf
- Unit 1【单元测试·提升卷】-2023-2024学年八年级英语上册单元速记巧练(牛津译林版) .pdf
- 自身免疫性肺泡蛋白沉积症与抗GMCSF抗体 .pdf
文档评论(0)