win32内核编程_06.pdf
《win32内核编程_06.pdf》由会员分享,可在线阅读,更多相关《win32内核编程_06.pdf(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、win32_06.txt=第六课 绘图=一、绘图基础-1.设备上下文(Device Context,DC)HDC-设备上下文句柄,表示绘图设备。HDC hDC=BeginPaint(hWnd,.);在这个窗口里绘图HDC hDC=BeginPaint(hPrinter,.);在这个打印机上绘图TextOut(hDC,.);在这里写字Ellipse(hDC,.);在这里画圆EndPaint(hWnd,.);/结束绘图2.图形设备接口(Graphics Device Interface,GDI)Win32提供的绘图APIs,封装在gdi32.dll动态链接库中。二、颜色空间-1.计算机三原色:红(
2、R)、绿(G)、蓝(B)R:0-255G:0-255B:0-2552.颜色深度:位/像素 1位/像素:2种颜色,黑白图 4位/像素:16种颜色,黑、白、深/浅灰、深/浅红、深/浅绿、深/浅蓝、深/浅黄、深/浅青、深/浅洋红 8位/像素:256种颜色,调色板16位/像素:R5-G5-B6,增强色24位/像素:R8-G8-B8,真彩色32位/像素:A8-R8-G8-B8,增加透明度第 1 页win32_06.txt3.颜色处理1)COLORREF-DWORD-unsigned long-32位无符号整型-0 x00BBGGRRCOLORREF cr=0 x00000000;/黑色COLORREF
3、cr=0 x000000FF;/纯红COLORREF cr=0 x0000FF00;/纯绿COLORREF cr=0 x00FF0000;/纯蓝2)颜色组合COLORREF cr=RGB(255,0,0);/纯红3)颜色分解GetRValue/GetGValue/GetBValueBYTE byRed=GetRValue(cr);/获取红色分量BYTE-unsigned char三、点-1.获取点的颜色COLORREF GetPixel(HDC hdc,/设备上下文句柄 int nXPos,/像素点水平坐标 int nYPos /像素点垂直坐标);返回像素点的颜色。2.设置点的颜色COLORR
4、EF SetPixel(HDC hdc,/设备上下文句柄 int X,/像素点水平坐标 int Y,/像素点垂直坐标 COLORREF crColor/期望颜色);成功返回该像素点的实际颜色(有可能与期望颜色不同,但尽量接近),失败返回-1。四、直线-1.从当前点移动到目标点,目标点成为新的当前点BOOL MoveToEx(第 2 页win32_06.txt HDC hdc,/设备上下文句柄 int X,/目标点水平坐标 int Y,/目标点垂直坐标 LPPOINT lpPoint/移动前的当前点(输出参数),可为NULL);成功返回TRUE,失败返回FALSE。2.从当前点到目标点画直线,目
5、标点成为新的当前点BOOL LineTo(HDC hdc,/设备上下文句柄 int nXEnd,/目标点水平坐标 int nYEnd /目标点垂直坐标);成功返回TRUE,失败返回FALSE。五、(椭)圆弧-1.画弧BOOL Arc(HDC hdc,/设备上下文句柄 int nLeftRect,/所在椭圆外切矩形左上角水平坐标 int nTopRect,/所在椭圆外切矩形左上角垂直坐标 int nRightRect,/所在椭圆外切矩形右下角水平坐标 int nBottomRect,/所在椭圆外切矩形右下角垂直坐标 int nXStartArc,/起点水平坐标 int nYStartArc,/起
6、点垂直坐标 起点到终点按逆时针截取 int nXEndArc,/终点水平坐标 /int nYEndArc /终点水平坐标/);成功返回TRUE,失败返回FALSE。2.设置截取方向int SetArcDirection(HDC hdc,/设备上下文句柄 int ArcDirection/AD_CLOCKWISE/AD_COUNTERCLOCKWISE,/按顺时针/逆时针截取);成功返回原截取方向,失败返回0。六、封闭图形-1.封闭第 3 页win32_06.txt能被画刷填充的图形是封闭图形。由直线围成的图形不属于封闭图形。2.矩形BOOL Rectangle(HDC hdc,/设备上下文句柄
7、 int nLeftRect,/矩形左上角水平坐标 int nTopRect,/矩形左上角垂直坐标 int nRightRect,/矩形右下角水平坐标 int nBottomRect/矩形右下角垂直坐标);成功返回TRUE,失败返回FALSE。3.(椭)圆BOOL Ellipse(HDC hdc,/设备上下文句柄 int nLeftRect,/外切矩形左上角水平坐标 int nTopRect,/外切矩形左上角垂直坐标 int nRightRect,/外切矩形右下角水平坐标 int nBottomRect/外切矩形右下角垂直坐标;成功返回TRUE,失败返回FALSE。4.圆角矩形BOOL Rou
8、ndRect(HDC hdc,/设备上下文句柄 int nLeftRect,/矩形左上角水平坐标 int nTopRect,/矩形左上角垂直坐标 int nRightRect,/矩形右下角水平坐标 int nBottomRect,/矩形右下角垂直坐标 int nWidth,/圆角所在椭圆的宽度 int nHeight /圆角所在椭圆的高度);成功返回TRUE,失败返回FALSE。范例:WinPaint七、画笔-1.画笔的作用线型、线宽和颜色。HPEN-画笔句柄。第 4 页win32_06.txt2.创建画笔HPEN CreatePen(int fnPenStyle,/线型 int nWidth
9、,/线宽 COLORREF crColor /颜色);成功返回画笔句柄,失败返回NULL。fnPenStyle取值:PS_SOLID -实线 PS_DASH -虚线 PS_DOT -点线 PS_DASHDOT -点划线 PS_DASHDOTDOT -双点划线 PS_NULL -不可见除PS_SOLID可通过nWidth指定线宽外,其它线型只支持一像素线宽,若nWidth1,则按一律按实线画。3.将画笔应用到设备上下文中HGDIOBJ SelectObject(HDC hdc,/设备上下文句柄 HGDIOBJ hgdiobj/GDI对象句柄);成功返回原GDI对象句柄,失败返回NULL。4.恢复
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- win32 内核 编程 _06
限制150内