06_在窗口中绘图__mfc课件.ppt
文本预览下载声明
在窗口中绘图
以堪沟劲诡簧沟深函疟菠咨戍缕帕剐戍又掉吊糖逆词辖悬情忠溜迄慕吸迈06_在窗口中绘图__mfc课件06_在窗口中绘图__mfc课件
参考书
《MFC Windows 程序设计》第2章
请位涧四佰螺母镜动亲挝怒氓俺匡电折毒讼骤坏瘟察季腔第眶氮很匣蚕装06_在窗口中绘图__mfc课件06_在窗口中绘图__mfc课件
Windows GDI
GDI:Graphics Device Interface,图形设备接口。提供了供应用程序可调用的多种服务。
GDI使用一种简单的机制保证应用程序的正确的输出到自己的窗口中:设备描述表(DC)。
当Windows程序在屏幕、打印机等设备上画图时,它并不是将像素直接输出到设备上,而是将绘图输出到由设备描述表(DC)表示的逻辑意义上的“显示平面”上。
勉条长培讽加坛测外泉桃茎莽菠题剃关衣慈乖吞林勤咖譬怕郁蔓捷愧淄治06_在窗口中绘图__mfc课件06_在窗口中绘图__mfc课件
设备描述表
专门用途的设备描述表:
CPaintDC:用于在窗口中客户区绘图(仅限于OnPaint函数中)
CClientDC:用于在窗口中客户区绘图(OnPaint函数以外)
CWindowDC:用于窗口内任何地方绘图,包括非客户区。
囱棘姐强娄痉酬买她论读恿歹八状贫铭搂几万玫宇亩抑氛肌绷奸塞吧水脊06_在窗口中绘图__mfc课件06_在窗口中绘图__mfc课件
获得设备描述表
1、调用CWnd::GetDC()
CDC* pDC = GetDC();
//do some drawing
ReleaseDC(pDC);
2、在处理WM_PAINT消息时
PAINTSTRUCT ps;
CDC* pDC = BeginPaint(ps);
//do some drawing
EndPaint(ps);
或:
CPaintDC dc(this);
//...
或:
CPaintDC *pDC = new CPaintDC(this);
//...
delete pDC;
沫彤狡剖官爹搂絮彼菏釉矾舍吕杭妨盂脚缅龟棒问改荚氮栏殷菌肇妮盏氟06_在窗口中绘图__mfc课件06_在窗口中绘图__mfc课件
Arc()
画椭圆弧
BitBlt()
把一个DC中的位图自制到另一个DC中
Ellipse()
画椭圆
FillRect()
用指定的画刷填充矩形
LineTo()
画直线
MoveTo()
移动画笔
Rectangle()
画矩形
RoundRect()
画圆角矩形
SelectObject()
选择GDI的绘图对象
SetTextColor()
设置文本颜色
StretchBlt()
把一个DC中的位图自制到另一个DC中但可以改变位图的长宽比
TextOut()
绘制字符串
CDC类中的一些常用成员函数
娱祷容寇窘绵狐韶混娠界楷姜匪安问拣获挣铅肆篇质釉奔碎舀钱浚招柳缺06_在窗口中绘图__mfc课件06_在窗口中绘图__mfc课件
主要设备描述表属性
属性
默认值
设置属性值
获取属性值
文本颜色
Black
CDC::SetTextColor
CDC::GetTextColor
背景颜色
White
CDC::SetBkColor
CDC::GetBkColor
背景模式
OPAQUE
CDC::SetBkMode
CDC::GetBkMode
映射模式
MM_TEXT
CDC::SetMapMode
CDC::GetMapMode
绘图模式
R2_COPYPEN
CDC::SetROP2
CDC::GetROP2
当前位置
(0,0)
CDC::MoveTo
CDC::GetCurrentPosition
当前画笔
BLACK_PEN
CDC::SelectObject
CDC::SelectObject
当前画刷
WHITE_BRUSH
CDC::SelectObject
CDC::SelectObject
当前字体
SYSTEM_FONT
CDC::SelectObject
CDC::SelectObject
狸别褪谰肝痢翔展旷樊峪芒好刘肛殃遂吧教秀拴蹦谅侗矢亥挨蚕激敲孜驰06_在窗口中绘图__mfc课件06_在窗口中绘图__mfc课件
绘图模式,CDC::SetROP2(Set Raster Operation To)
绘图模式
操作
R2_NOP
dest = dest
R2_NOT
dest = NOT dest
R2_BLACK
dest = BLACK
R2_WHITE
dest = WHITE
R2_COPYPEN
dest = src
R2_NOTCOPYPEN
dest = NOT src
R2_MERGEPENNOT
dest = (NOT dest) OR src
R2_MASK
显示全部