如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
win32_06.txt============第六课绘图============一、绘图基础------------1.设备上下文(DeviceContext,DC)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~HDC-设备上下文句柄,表示绘图设备。HDChDC=BeginPaint(hWnd,...);^在这个窗口里绘图HDChDC=BeginPaint(hPrinter,...);^在这个打印机上绘图TextOut(hDC,...);^在这里写字Ellipse(hDC,...);^在这里画圆EndPaint(hWnd,...);//结束绘图2.图形设备接口(GraphicsDeviceInterface,GDI)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Win32提供的绘图APIs,封装在gdi32.dll动态链接库中。二、颜色空间------------1.计算机三原色:红(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,增加透明度win32_06.txt3.颜色处理~~~~~~~~~~~1)COLORREF-DWORD-unsignedlong-32位无符号整型-0x00BBGGRRCOLORREFcr=0x00000000;//黑色COLORREFcr=0x000000FF;//纯红COLORREFcr=0x0000FF00;//纯绿COLORREFcr=0x00FF0000;//纯蓝2)颜色组合COLORREFcr=RGB(255,0,0);//纯红3)颜色分解GetRValue/GetGValue/GetBValueBYTEbyRed=GetRValue(cr);//获取红色分量BYTE-unsignedchar三、点------1.获取点的颜色~~~~~~~~~~~~~~~COLORREFGetPixel(HDChdc,//设备上下文句柄intnXPos,//像素点水平坐标intnYPos//像素点垂直坐标);返回像素点的颜色。2.设置点的颜色~~~~~~~~~~~~~~~COLORREFSetPixel(HDChdc,//设备上下文句柄intX,//像素点水平坐标intY,//像素点垂直坐标COLORREFcrColor//期望颜色);成功返回该像素点的实际颜色(有可能与期望颜色不同,但尽量接近),失败返回-1。四、直线--------1.从当前点移动到目标点,目标点成为新的当前点~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~BOOLMoveToEx(win32_06.txtHDChdc,//设备上下文句柄intX,//目标点水平坐标intY,//目标点垂直坐标LPPOINTlpPoint//移动前的当前点(输出参数),可为NULL);成功返回TRUE,失败返回FALSE。2.从当前点到目标点画直线,目标点成为新的当前点~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~BOOLLineTo(HDChdc,//设备上下文句柄intnXEnd,//目标点水平坐标intnYEnd//目标点垂直坐标);成功返回TRUE,失败返回FALSE。五、(椭)圆弧------------1.画弧~~~~~~~BOOLArc(HDChdc,//设备上下文句柄intnLeftRect,//所在椭圆外切矩形左上角水平坐标intnTopRect,//所在椭圆外切矩形左上角垂直坐标intnRightRect,//所在椭圆外切矩形右下角水平坐标intnBottomRect,//所在椭圆外切矩形右下角垂直坐标intnXStartArc,//起点水平坐标\intnYStartArc,//起点垂直坐标\>起点到终点按逆时针截取intnXEndArc,//终点水平坐标/intnYEndArc//终点水平坐标/);成功返回TRUE,失败返回F