《Windows程序设计》读书笔记------------->>开始画画!<<

从现在才开始发现,每一节的内容越来越多越来越难,每次要写得都有一大堆,我只好不断妥协,减少内容了了。原来为了给大家看得方便,就像用背景高亮的方式突出显示。但是我只是在写,不知道看的人看的不舒服。现在经liying828772提醒,以后改成粗体显示好了,谢谢了。

有批评欢迎留言呀,批评总比每次上来看到评论数是零的好。。。。。。

回归正题,这节其实很多但是都是些函数的使用,那用书上的索引加上MSDN的解释好了。

画点

SetPixel函数在指定的x和y坐标以特定的颜色设定图素:

COLORREF SetPixel(
  HDC hdc,           
//  设备内容句柄
   int  X,              //  点的x坐标
   int  Y,              //  点的y坐标
  COLORREF crColor    //  点的颜色
);


GetPixel函数传回指定坐标处的图素颜色:

COLORREF GetPixel(
  HDC hdc,    
//  设备内容句柄
   int  nXPos,   //  点的x坐标
   int  nYPos    //  点的y坐标
);


返回值为坐标点的颜色值

画直线

LineTo 画直线。

BOOL LineTo(
  HDC hdc,    
//  设备内容句柄
   int  nXEnd,   //  结束点的x坐标
   int  nYEnd    //  结束点的y坐标
);

注意:这个需要设定起始点,也就是调用MoveToEx函数设定从哪里开始画。

BOOL MoveToEx(
  HDC hdc,          
//  设备内容句柄
   int  X,             //  开始点的x坐标
   int  Y,             //  开始点的y坐标
  LPPOINT lpPoint    // 用于储存前一个点的一个POINT结构指针,如果这个参数为NULL则不保存前一个点坐标。
);

然后可以用这个函数取得上面那个坐标:

BOOL GetCurrentPositionEx(
  HDC hdc,        
//  设备内容句柄
  LPPOINT lpPoint  //  POINT类型指针
);

它保存在POINT结构中,这个结构有这些东东:

typedef  struct  tagPOINT 
  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函数用于根据一个特定的数组画一系列直线』

BOOL Polyline(
  HDC hdc,            
//  设备内容句柄
  CONST POINT  * lppt,   //  点的数组
   int  cPoints          //  数组中点的个数
);


The PolylineTo function draws one or more straight lines. 『PolylineTo与Polyline很像,但是它要用到MoveToEx函数设定起始点』

BOOL PolylineTo(
  HDC hdc,            
//  设备内容句柄
  CONST POINT  * lppt,   //  点的数组
  DWORD cCount         //  数组中点的个数
);


PolyPolyline函数画很多组相连的线段

BOOL PolyPolyline(
  HDC hdc,                      
//  设备内容句柄
  CONST POINT  * lppt,             //  储存点的数组
  CONST DWORD  * lpdwPolyPoints,   //  储存有几个点相连
  DWORD cCount                   //  上面那个数组的个数
);


画曲线

Arc 画椭圆线。

BOOL 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很像,就是它是连接“到”某处。从原来的点,连接到起点。

BOOL ArcTo(
  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坐标
);    // 顺时针?

 


BOOL AngleArc(
  HDC hdc,            
//  设备内容句柄
   int  X,               //  圆心的x坐标
   int  Y,               //  圆心的y坐标
  DWORD dwRadius,      //  圆半径
  FLOAT eStartAngle,   //  椭圆开始的度数
  FLOAT eSweepAngle    //  椭圆结束的度数
);    // 顺时针?


PolyDraw 画一系列相连的线以及贝塞尔曲线。

BOOL PolyDraw(
  HDC hdc,               
//  设备内容句柄
  CONST POINT  * lppt,      //  array of points
  CONST BYTE  * lpbTypes,   //  line and curve identifiers
   int  cCount              //  count of points
);

懒~主要是我现在还是不怎么搞得懂贝塞尔曲线,以后用到再查MSDN好了,标记一下先


画图形:

Rectangle 画矩形。

BOOL Rectangle(
  HDC hdc,         
//  设备内容句柄
   int  nLeftRect,    //  矩形左上角的x坐标
   int  nTopRect,     //  矩形左上角的y坐标
   int  nRightRect,   //  矩形右下角的x坐标
   int  nBottomRect,  //  矩形右下角的y坐标
);


Ellipse 画椭圆。

BOOL Ellipse(
  HDC hdc,        
//  设备内容句柄
   int  nLeftRect,    //  矩形左上角的x坐标
   int  nTopRect,     //  矩形左上角的y坐标
   int  nRightRect,   //  矩形右下角的x坐标
   int  nBottomRect,  //  矩形右下角的y坐标
);


RoundRect 画带圆角的矩形。

BOOL RoundRect(
  HDC hdc,         
//  设备内容句柄
   int  nLeftRect,    //  矩形左上角的x坐标
   int  nTopRect,     //  矩形左上角的y坐标
   int  nRightRect,   //  矩形右下角的x坐标
   int  nBottomRect,  //  矩形右下角的y坐标
   int  nWidth,       //  椭圆的宽
   int  nHeight       //  椭圆的高
);


 Pie 画椭圆的一部分,使其看起来像一个派(PIE:)。

BOOL 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 画椭圆的一部分,以呈弓形。

BOOL 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 多边形

BOOL Polygon(
  HDC hdc,                
//  设备内容句柄
  CONST POINT  * lpPoints,   //  点的数组
   int  nCount               //  点的数目
);

PolyPolygon 多个多边形

BOOL PolyPolygon(
  HDC hdc,                  
//  设备内容句柄
  CONST POINT  * lpPoints,     //  点的数组
  CONST INT  * lpPolyCounts,   //  储存有几个点相连
   int  nCount                 //  上面那个数组的个数
); 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值