资源描述:
《WIN32编程入门GDI绘图》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第二部分Win32SDK编程绘图的画布—窗口客户区参数:typedefstruct_RECT{LONGleft;//矩形左上角的x坐标.LONGtop;//矩形左上角的y坐标.LONGright;//矩形右下角的x坐标.LONGbottom;//矩形右下角的y坐标.}RECT;GDI绘图的画布获得窗口客户区域参数:BOOLGetClientRect(HWNDhWnd,//窗口句柄LPRECTlpRect//矩形结构体地址);获取时机:在WM_PAINT消息中获得的是窗口尺寸改变后的客户区参数,如果想要画出来的图形随窗口变化,需要在该消息中使用该函数。GD
2、I绘图的画布设备上显示的图形型态本身可以被分为几类:设置像素的颜色COLORREFSetPixel(HDChdc,//设备环境句柄intX,//像素的x坐标intY,//像素的y坐标COLORREFcrColor//像素颜色);GDI基本图形—像素操作设备上显示的图形型态本身可以被分为几类:直线和曲线线条是所有向量图形绘制系统的基础。GDI支持直线、矩形、椭圆(包括椭圆的子集,也就是我们所说的「圆」)、椭圆圆周上的部分曲线即所谓的「弧」以及贝塞尔曲线(Bezierspline)。所有更复杂的曲线可由折线(polyline)代替,折线通过一组非常短的直线来
3、定义一条曲线。线条用设备内容中选中的目前画笔绘制。GDI基本图形—直线GetCurrentPositionEx(hdc,&pt);BOOLMoveToEx(HDChdc,//设备句柄intX,//目标点的x坐标intY,//目标点的y坐标LPPOINTlpPoint//存放当前点的结构体指针);BOOLLineTo(HDChdc,//设备句柄intnXEnd,//终点的x坐标intnYEnd//终点的y坐标);GDI基本图形—直线BOOLRectangle(HDChdc,//设备句柄intnLeftRect,//包围矩形的左上角x坐标intnTopRec
4、t,//包围矩形的左上角x坐标intnRightRect,//包围矩形的右下角x坐标intnBottomRect//包围矩形的右下角y坐标);GDI基本图形—矩形BOOLRoundRect(HDChdc,//设备句柄intnLeftRect,//包围矩形的左上角x坐标intnTopRect,//包围矩形的左上角y坐标intnRightRect,//包围矩形的右下角x坐标intnBottomRect,//包围矩形的右下角y坐标intnWidth,//用于画圆角的椭圆的宽度intnHeight//用于画圆角的椭圆的高度);GDI基本图形—圆角矩形BOOLEl
5、lipse(HDChdc,//设备句柄intnLeftRect,//包围矩形的左上角x坐标intnTopRect,//包围矩形的左上角x坐标intnRightRect,//包围矩形的右下角x坐标intnBottomRect//包围矩形的右下角y坐标);GDI基本图形—椭圆怎样改变绘图时使用的线型以及线条的颜色:HPENhPen,oldPen;hPen=(HPEN)GetStockObject(WHITE_PEN);oldPen=(HPEN)SelectObject(hdc,hPen);GID绘图函数调用;SelectObject(hdc,oldPen);
6、//恢复原来的画笔GDI的画笔—使用系统画笔HPENCreatePen(intfnPenStyle,//线型intnWidth,//画笔线宽,以像素为单位COLORREFcrColor//画笔颜色,RGB(R,G,B));线型可选参数值:PS_SOLIDPS_DASHPS_DOTPS_DASHDOT等GDI的画笔—创建画笔使用创建的画笔:HPENhPen,oldPen;hPen=CreatePen(PS_DASHDOTDOT,1,RGB(255,0,0));oldPen=(HPEN)SelectObject(hdc,hPen);GID绘图函数调用;Sel
7、ectObject(hdc,oldPen);//恢复原来的画笔DeleteObject(hPen);GDI的画笔—创建画笔填充区域当一系列直线或者曲线封闭了一个区域时,该区域可以使用目前GDI画刷对象进行填图。这个画刷可以是实心色彩、图案(可以是一系列的水平、垂直或者对角标记)或者是在区域内垂直或者水平重复的位图图像。GDI—填充区域函数图形Rectangle直角矩形Ellipse椭圆RoundRect圆角矩形Chord椭圆周上的弧,两端以弦连接Pie椭圆上的饼图Polygon多边形PolyPolygon多个多边形HBRUSHhBrush,oldBrus
8、h;hBrush=(HBRUSH)GetStockObject(GRAY_BRU