如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
Windows绘图图形基础GDI函数调用GDI基本图形GDI辅助函数设备上下文一、取得设备上下文句柄1、在处理WM_PAINT消息时,使用BeginPaint和EndPaint函数调用hdc=BeginPaint(hwnd,&ps);其它行程序EndPaint(hwnd,&ps);2、在处理非WM_PAINT消息时取得设备上下文句柄hdc=GetDC(hwnd);其它行程序ReleaseDC(hwnd,hdc);3、取得适用于整个窗口(而不仅限于窗口的显示区域)的设备上下文句柄hdc=GetWindowDC(hwnd);其它行程序ReleaseDC(hwnd,hdc);一、取得设备上下文句柄(续)4、通用的函数hdc=CreateDC(pszDriver,pszDevice,pszOutput,pData);其它行程序DeleteDC(hdc);5、取得内存设备上下文句柄hdcMem=CreateCompatibleDC(hdc);其它行程序DeleteDC(hdcMem);二、取得设备上下文信息GetDeviceCapsiValue=GetDeviceCaps(hdc,iIndex);例如,iIndex为HORZRES时将使GetDeviceCaps传回设备的宽度(单位为像素);iIndex为VERTRES时将让GetDeviceCaps传回设备的高度(单位为像素)。见例子程序Win32Program01。WindowsGDI色彩的表示在大多数GDI函数调用中,使用COLORREF值(只是一个32位的无正负号长整数)来表示一种色彩。COLORREF值按照红、绿和蓝色的亮度指定了一种颜色,通常叫做“RGB色彩”。图形的绘制1、设定像素WindowsGDI包含了SetPixel和GetPixel函数,但很少使用它们。SetPixel函数在指定的x和y坐标以特定的颜色设定像素:COLORREFSetPixel(HDChdc,//handletoDCintX,//x-coordinateofpixelintY,//y-coordinateofpixelCOLORREFcrColor//pixelcolor);SetPixel(hdc,x,y,crColor);如果在函数中指定的颜色显示器不支持,则函数将像素设定为最接近的纯色并从函数传回该值。GetPixel函数传回指定坐标处的像素颜色:COLORREFGetPixel(HDChdc,//handletoDCintnXPos,//x-coordinateofpixelintnYPos//y-coordinateofpixel);crColor=GetPixel(hdc,x,y);2、画线Windows可以画直线、椭圆线(椭圆圆周上的曲线)和贝塞尔曲线。LineTo画直线。Polyline和PolylineTo画一系列相连的直线。PolyPolyline画多组相连的线。Arc画椭圆线。PolyBezier和PolyBezierTo画贝塞尔曲线。ArcTo和AngleArc画椭圆线。PolyDraw画一系列相连的线以及贝塞尔曲线。后面将介绍一些既画线也填入所画图形的封闭区域的函数,这些函数是:Rectangle画矩形。Ellipse画椭圆。RoundRect画带圆角的矩形。Pie画椭圆的一部分,使其看起来像一个扇形。Chord画椭圆的一部分,以呈弓形。设备上下文的五个属性影响着用这些函数所画线的外观:目前画笔的位置(仅用于LineTo、PolylineTo、PolyBezierTo和ArcTo)、画笔、背景方式、背景色和绘图模式。2.1直线的绘制画一条直线,必须呼叫两个函数。第一个函数指定了线的开始点,第二个函数指定了线的终点:MoveToEx(hdc,xBeg,yBeg,NULL);LineTo(hdc,xEnd,yEnd);MoveToEx实际上不会画线,它只是设定了设备上下文的「目前位置」属性。然后LineTo函数从目前的位置到它所指定的点画一条直线。目前位置只是用于其它几个GDI函数的开始点。在内定的设备上下文中,目前位置最初设定在点(0,0)。如果在呼叫LineTo之前没有设定目前位置,那么它将从显示区域的左上角开始画线。BOOLMoveToEx(HDChdc,//handletodevicecontextintX,//x-coordinateofnewcurrentpositionintY,//y-coordinateofnewcurrentpositionLPPOINTlpPoint//oldcurrentposition);BOOLLineT