windows图形接口与绘
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§3.2 图形设备接口(GDI)
1. 图形设备接口—提供专门的数据结构即设备描述表(DC)和对DC操 作的绘图函数。 2. 设备描述表(DC)—用于代表图形输出设备如显示屏、打印机;
3. 设备无关性—利用GDI,所有的绘图操作都对设备描述表而不是具体 的物理设备。
设备描述表
• 一种专门用于代表图形输出设备(如屏幕、打 印机和绘图仪等)的数据结构 –画布 –绘图工具(设备描述表属性) • 使用句柄(HDC)访问设备描述表 – 设置设备描述表属性 – 绘制图形和文本
HDC hdc;
BOOL fErase;
RECT rcPaint; BOOL fRestore; BOOL fIncUpdate; BYTE rgbReserved[32];
} PAINTSTRUCT
(2) EndPaint function
• 标志对指定窗口Baidu Nhomakorabea绘图结束
•释放设备描述表句柄
•必须与BeginPaint函数成对调用 •函数原型
GDI对象
• • • • • 画笔 画刷 字体 位图 裁剪区
case WM_PAINT: hdc = BeginPaint(hWnd, &ps); RECT rt; GetClientRect(hWnd, &rt); SetTextColor(hdc,RGB(255,0,0)); SetBkColor(hdc,RGB(0,0,255)); DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER); EndPaint(hWnd, &ps); break;
(2)ReleaseDC function 释放设备描述表句柄
必须与GetDC函数成对调用
函数原型: int ReleaseDC(HWND hWnd, // handle to window HDC hDC // handle to device context );
设备描述表属性
设备描述表属性 映射方式 窗口原点 视口原点 窗口限度 视口限度 画笔 画刷 字模 位图 当前画笔位置 背景方式 背景色彩 文本色彩 作图方式 伸展方式 多边形填充方式 字符间距 画刷原点 裁剪区 缺省值 MM_TEXT (0,0) (0,0) (1,1) (1,1) BLACK_PE WHITE_BRUSH SISTEM_FONT NONE (0,0) OPAQUE White Black R2_COPYPEN BLACK_ONWHIE ALTERNATE 0 (0,0)屏幕坐标 NONE 设置属性值函数 SetMapMode SetWindowOrg SetViewportOrg SetWindowExt SetViewportExt SelectObject SelectObject SelectObject SelectObject MoveTo LineTo SetBkMode SetBkColor SetTextColor SetROP2 SetPollyFillMode SetPollyFillMode SetTextCharacterExtra SetBrushOrg SelectObject SelectClipRgn IntersectClipRect OffsetClipRgn ExcludeClipRect 获取属性值函数 GetMapMode GetWindowOrg OffsetWindowOrg GetViewportOrg OffsetViewportOrg GetWindowExt SetMapMode GetViewportExt SetMapMode SelectObject SelectObject SelectObject SelectObject GetCurrentPosition GetBkMode GetBkColor GetTextColor GetROP2 GetPollyFillMode GetPollyFillMode GetTextCharacterE xtra GetBrushOrg SelectObject GetClipBox
实验作业
1. 习题2,3,4
§3.1 响应WM_PAINT消息
1. WM_PAINT消息的产生 无效矩形 打开一个窗口 改变窗口大小 移动窗口 切换窗口 最小化、最大化窗口 2. 响应WM_PAINT消息 OnPaint
调用InvalidateRect函数
调用UpdateWindow函数
§3 Windows 图形设备接口及绘图
1. 响应WM_PAINT消息
2. 图形设备接口(GDI)
3. 使用设备描述表 3. 获取设备描述表句柄 5. CDC及其派生类 6. 使用CDC成员函数绘制文本 7.使用CDC成员函数绘制图形 8.正确使用GDI对象 9.设备坐标与逻辑坐标
10. OpenGL绘图
3.3 使用设备描述表绘图
(1) (2) (3) (4) 获取设备描述表句柄 设置设备描述表属性 调用绘图函数绘图 释放设备描述表
3.4 获取窗口设备描述表句柄
1. BeginPaint和EndPaint函数 (1) BeginPaint function • 准备在窗口绘图 • 获得代表窗口的设备描述表句柄 • 把有关绘图的信息放到PAINTSTRUCT 结构变 量中。 • 响应WM_PAINT消息绘图,必须调用该函数获 取设备描述表句柄。
BOOL EndPaint ( HWND hWnd, CONST PAINTSTRUCT
*lpPaint
);
2.GetDC和RealeaseDC函数
(1) GetDC function 获取窗口设备描述表句柄 用于响应非WM_PAINT消息绘图。 函数原型: HDC GetDC( HWND hWnd );
•函数原型:
HDC BeginPaint (
HWND hwnd, // handle to window
LPPAINTSTRUCT lpPaint // pointer to structure for paint information);
PAINTSTRUCT
• typedef struct tagPAINTSTRUCT {