从现在才开始发现,每一节的内容越来越多越来越难,每次要写得都有一大堆,我只好不断妥协,减少内容了了。原来为了给大家看得方便,就像用背景高亮的方式突出显示。但是我只是在写,不知道看的人看的不舒服。现在经liying828772提醒,以后改成粗体显示好了,谢谢了。
有批评欢迎留言呀,批评总比每次上来看到评论数是零的好。。。。。。
回归正题,这节其实很多但是都是些函数的使用,那用书上的索引加上MSDN的解释好了。
画点
SetPixel函数在指定的x和y坐标以特定的颜色设定图素:
HDC hdc, // 设备内容句柄
int X, // 点的x坐标
int Y, // 点的y坐标
COLORREF crColor // 点的颜色
);
GetPixel函数传回指定坐标处的图素颜色:
HDC hdc, // 设备内容句柄
int nXPos, // 点的x坐标
int nYPos // 点的y坐标
);
返回值为坐标点的颜色值
画直线
LineTo 画直线。
HDC hdc, // 设备内容句柄
int nXEnd, // 结束点的x坐标
int nYEnd // 结束点的y坐标
);
注意:这个需要设定起始点,也就是调用MoveToEx函数设定从哪里开始画。
HDC hdc, // 设备内容句柄
int X, // 开始点的x坐标
int Y, // 开始点的y坐标
LPPOINT lpPoint // 用于储存前一个点的一个POINT结构指针,如果这个参数为NULL则不保存前一个点坐标。
);
然后可以用这个函数取得上面那个坐标:
HDC hdc, // 设备内容句柄
LPPOINT lpPoint // POINT类型指针
);
它保存在POINT结构中,这个结构有这些东东:
LONG x;
LONG y;
} POINT, * PPOINT;
pt.x,或者pt.y就可以用了。
Polyline和PolylineTo 画一系列相连的直线。
The Polyline function draws a series of line segments by connecting the points in the specified array. 『Polyline函数用于根据一个特定的数组画一系列直线』
HDC hdc, // 设备内容句柄
CONST POINT * lppt, // 点的数组
int cPoints // 数组中点的个数
);
The PolylineTo function draws one or more straight lines. 『PolylineTo与Polyline很像,但是它要用到MoveToEx函数设定起始点』
HDC hdc, // 设备内容句柄
CONST POINT * lppt, // 点的数组
DWORD cCount // 数组中点的个数
);
PolyPolyline函数画很多组相连的线段
HDC hdc, // 设备内容句柄
CONST POINT * lppt, // 储存点的数组
CONST DWORD * lpdwPolyPoints, // 储存有几个点相连
DWORD cCount // 上面那个数组的个数
);
画曲线
Arc 画椭圆线。
HDC hdc, // 设备内容句柄
int nLeftRect, // 矩形左上角的x坐标
int nTopRect, // 矩形左上角的y坐标
int nRightRect, // 矩形右下角的x坐标
int nBottomRect, // 矩形右下角的y坐标
int nXStartArc, // 开始弧度的x坐标
int nYStartArc, // 开始弧度的y坐标
int nXEndArc, // 结束弧度的x坐标
int nYEndArc // 结束弧度的y坐标
); // 逆时针?
PolyBezier和PolyBezierTo 画贝塞尔曲线。
这个东西我也搞不懂,以前用PHOTOSHOP的时候就晕头转向的,我想会用这个用程序画图的,不是数学狂人就是程序狂人............不管它了@_@
ArcTo和AngleArc 画椭圆线。
ArcTo和Arc很像,就是它是连接“到”某处。从原来的点,连接到起点。
HDC hdc, // 设备内容句柄
int nLeftRect, // 矩形左上角的x坐标
int nTopRect, // 矩形左上角的y坐标
int nRightRect, // 矩形右下角的x坐标
int nBottomRect, // 矩形右下角的y坐标
int nXRadial1, // 第一个弧度的x坐标
int nYRadial1, // 第一个弧度的y坐标
int nXRadial2, // 第二个弧度的x坐标
int nYRadial2 // 第二个弧度的y坐标
); // 顺时针?
HDC hdc, // 设备内容句柄
int X, // 圆心的x坐标
int Y, // 圆心的y坐标
DWORD dwRadius, // 圆半径
FLOAT eStartAngle, // 椭圆开始的度数
FLOAT eSweepAngle // 椭圆结束的度数
); // 顺时针?
PolyDraw 画一系列相连的线以及贝塞尔曲线。
HDC hdc, // 设备内容句柄
CONST POINT * lppt, // array of points
CONST BYTE * lpbTypes, // line and curve identifiers
int cCount // count of points
);
懒~主要是我现在还是不怎么搞得懂贝塞尔曲线,以后用到再查MSDN好了,标记一下先
画图形:
Rectangle 画矩形。
HDC hdc, // 设备内容句柄
int nLeftRect, // 矩形左上角的x坐标
int nTopRect, // 矩形左上角的y坐标
int nRightRect, // 矩形右下角的x坐标
int nBottomRect, // 矩形右下角的y坐标
);
Ellipse 画椭圆。
HDC hdc, // 设备内容句柄
int nLeftRect, // 矩形左上角的x坐标
int nTopRect, // 矩形左上角的y坐标
int nRightRect, // 矩形右下角的x坐标
int nBottomRect, // 矩形右下角的y坐标
);
RoundRect 画带圆角的矩形。
HDC hdc, // 设备内容句柄
int nLeftRect, // 矩形左上角的x坐标
int nTopRect, // 矩形左上角的y坐标
int nRightRect, // 矩形右下角的x坐标
int nBottomRect, // 矩形右下角的y坐标
int nWidth, // 椭圆的宽
int nHeight // 椭圆的高
);
Pie 画椭圆的一部分,使其看起来像一个派(PIE:)。
HDC hdc, // 设备内容句柄
int nLeftRect, // 矩形左上角的x坐标
int nTopRect, // 矩形左上角的y坐标
int nRightRect, // 矩形右下角的x坐标
int nBottomRect, // 矩形右下角的y坐标
int nXRadial1, // 第一个弧度的x坐标
int nYRadial1, // 第一个弧度的y坐标
int nXRadial2, // 第二个弧度的x坐标
int nYRadial2 // 第二个弧度的y坐标
);
Chord 画椭圆的一部分,以呈弓形。
HDC hdc, // 设备内容句柄
int nLeftRect, // 矩形左上角的x坐标
int nTopRect, // 矩形左上角的y坐标
int nRightRect, // 矩形右下角的x坐标
int nBottomRect, // 矩形右下角的y坐标
int nXRadial1, // 第一个弧度的x坐标
int nYRadial1, // 第一个弧度的y坐标
int nXRadial2, // 第二个弧度的x坐标
int nYRadial2 // 第二个弧度的y坐标
);
Polygon 多边形
HDC hdc, // 设备内容句柄
CONST POINT * lpPoints, // 点的数组
int nCount // 点的数目
);
PolyPolygon 多个多边形
HDC hdc, // 设备内容句柄
CONST POINT * lpPoints, // 点的数组
CONST INT * lpPolyCounts, // 储存有几个点相连
int nCount // 上面那个数组的个数
);