windows画图常用函数

本文详细介绍了Windows GDI绘图系统中常用的绘图函数,包括SetPixel、MoveToEx、LineTo等基本绘图操作,以及SelectObject、DeleteObject等资源管理函数,还涵盖了Polyline、PolylineTo等多点连线函数,最后列举了Rectangle、Ellipse等图形绘制函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SetPixel()

函数功能:该函数将指定坐标处的像素设为指定的颜色。
函数原型:COLORREF SetPixel(HDC hdc, int X, int Y, COLORREF crColor);

hdc
  设备环境句柄。
X
  指定要设置的点的X轴坐标,按逻辑单位表示坐标。
Y
  指定要设置的点的Y轴坐标,按逻辑单位表示坐标。
crColor
  指定要用来绘制该点的颜色。
//-------------------------------------------------------------------------------

MoveToEx()

本函数将当前绘图位置移动到某个具体的点,同时也可获得之前位置的坐标
  WINGDIAPI BOOL WINAPI MoveToEx(
  HDC hdc,
  int X,
  int Y,
  LPPOINT lpPoint
  );
  参数:
  HDC hdc:传入参数,设备上下文句柄。
  int X:传入参数:新位置的X坐标。
  int Y:传入参数:新位置的Y坐标。
  LPPOINT lpPoint:传出参数:一个指向POINT结构的指针,用来存放上一个点的位置,若此参数为NULL,则不保存上一个点的位置


//---------------------------------------------------

Lineto()

用当前画笔画一条线,从当前位置连到一个指定的点。这个函数调用完毕,当前位置变成x,y
  WINGDIAPI BOOL WINAPI LineTo(
  HDC hdc,
  int X,
  int Y,
  );
  参数:
  hdc:设备场景句柄
  X:线段终点X坐标位置,采用逻辑坐标表示。这个点不会实际画出来;它不属于线段的一部份
  Y:线段终点Y坐标位置,采用逻辑坐标表示。这个点不会实际画出来;它不属于线段的一部份

//---------------------------------------------------


 SelectObject()

CPen* SelectObject( CPen* pPen );
  CBrush* SelectObject( CBrush* pBrush );
  virtual CFont* SelectObject( CFont* pFont );
  CBitmap* SelectObject( CBitmap* pBitmap );
  int SelectObject( CRgn* pRgn );
  CGdiObject* SelectObject( CGdiObject* pObject );
  函数功能:该函数选择一对象到指定的设备上下文环境中,该新对象替换先前的相同类型的对象。
  函数原型:HGDIOBJ SelectObject(HDC hdc, HGDIOBJ hgdiobj);
  参数:
  hdc:设备上下文环境的句柄。
  hgdiobj:被选择的对象的句柄,该指定对象必须由如下的函数创建。
  位图:CreateBitmap, CreateBitmapIndirect, CreateCompatible Bitmap, CreateDIBitmap, CreateDIBsection(只有内存设备上下文环境可选择位图,并且在同一时刻只能一个设备上下文环境选择位图)。
  画刷:CreateBrushIndirect, CreateDIBPatternBrush, CreateDIBPatternBrushPt, CreateHatchBrush, CreatePatternBrush, CreateSolidBrush。
  字体:CreateFont, CreateFontIndirect。
  笔:CreatePen, CreatePenIndirect。
  区域:CombineRgn, CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreateRectRgn, CreateRectRgnIndirect。
  返回值:如果选择对象不是区域并且函数执行成功,那么返回值是被取代的对象的句柄;如果选择对象是区域并且函数执行成功,返回如下一值;
  SIMPLEREGION:区域由单个矩形组成;COMPLEXREGION:区域由多个矩形组成。NULLREGION:区域为空。
  如果发生错误并且选择对象不是一个区域,那么返回值为NULL,否则返回GDI_ERROR。
  注释:该函数返回先前指定类型的选择对象,一个应用程序在它使用新对象进行绘制完成之后,应该用原始的缺省的对象替换新对象。
  应用程序不能同时选择一个位图到多个设备上下文环境中。
  ICM:如果被选择的对象是画笔或笔,那么就执行颜色管理。
  速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:wingdi.h;库文件:gdi32.lib。

SelectObject()和DeleteObject()成对使用。



详见:http://baike.baidu.com/view/1080552.htm

//---------------------------------------------------

DeleteObject()


  函数功能:该函数删除一个逻辑笔、画笔、字体、位图、区域或者调色板,释放所有与该对象有关的系统资源,在对象被删除之后,指定的句柄也就失效了。
  函数原型:BOOL DeleteObject(HGDIOBJ hObject);
  参数:
  hObject:逻辑笔、画笔、字体、位图、区域或者调色板的句柄。
  返回值:成功,返回非零值;如果指定的句柄无效或者它已被选入设备上下文环境,则返回值为零。
  注释:当一个绘画对象(如笔或画笔)当前被选入一个设备上下文环境时不要删除该对象。当一个调色板画笔被删除时,与该画笔相关的位图并不被删除,该图必须单独地删除。
  Windows CE:当对象在当前被选入一个设备上下文环境时,DeleteObject函数返回错误。
  速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:wingdi.h;库文件:gdi32.lib。


//---------------------------------------------------


Polyline()

[声明]
  Declare Function Polyline Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
[说明]
  用当前画笔描绘一系列线段。使用PolylineTo函数时,当前位置会设为最后一条线段的终点。它不会由Polyline函数改动
  函数原型:
  BOOL Polyline( HDC hdc, CONST POINT *lppt, int cPoints)
  [参数表]
  hdc ------------ Long,要在其中绘图的设备场景
  lpPoint -------- POINTAPI,nCount POINTAPI结构数组中的第一个POINTAPI结构
  nCount --------- Long,lpPoint数组中的点数。会从第一个点到第二个点画一条线,以次类推
  [返回值]
  Long,非零表示成功,零表示失败

//---------------------------------------------------

PolylineTo()

函数原型:
  BOOL PolyLineTo(HDC hdc, CONST POINT * apt, DWORD cpt);
  参数:
  hdc:设备场景句柄
  apt:nCount POINTAPI结构数组中的第一个POINTAPI结构
  cpt:Point数组中的点数
  说明:
  和PolyLine不同,PolyLineTo使用目前位置作为开始点,并将目前位置设定为最后
  一根线的终点,根据apt的点依次画直线。设置目前位置可调用MoveToEx函数.
详见: http://baike.baidu.com/view/6280924.htm

//---------------------------------------------------



函数

图形

Rectangle

直角矩形

Ellipse

椭圆

RoundRect

圆角矩形

Chord

椭圆周上的弧,两端以弦连接

Pie

椭圆上的饼图

Polygon

多边形

PolyPolygon

多个多边形



//---------------------------------------------------

Rectangle()

函数原型:BOOL Rectangle(HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect);
  参数:
  hdc:设备环境句柄。
  nLeftRect:指定矩形左上角的逻辑X坐标。
  nTopRect:指定矩形左上角的逻辑Y坐标。
  nRightRect:指定矩形右下角的逻辑X坐标。
  nBottomRect:指定矩形右下角的逻辑Y坐标。
  返回值:如果函数调用成功,返回值非零,否则返回值为0。
  Windows NT:若想获得更多错误信息,请调用GetLastError函数。
  备注:此函数不使用和改变当前位置。
  速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:wingdi.h;库文件:gdi32.lib。
  示例:
  Rectangle(hdc,0,0,100,100);

详见:http://baike.baidu.com/view/1080744.htm

//--------------------------------------------------

Ellipse()

函数功能:该函数用于画一个椭圆,椭圆的中心是限定矩形的中心,使用当前画笔画椭圆,用当前的画刷填充椭圆。
  函数原型:BOOL Ellipse(HDC hdc,int nLeftRect,int nTopRect,nRightRect,int nBottomRect).
  参数:
  hdc:设备环境句柄。
  nLeftRect:指定限定椭圆左上角的X坐标。
  nTopRect:指定限定椭圆左上角的Y坐标。
  nRightRect:指定限定椭圆右下角的X坐标。
  nBottomRect:指定限定椭圆右下角的Y坐标。
  返回值:如果函数调用成功,返回值非零;如果函数调用失败,返回值是0。

//--------------------------------------------------

RoundRect()


函数功能:该函数画一个带圆角的矩形,此矩形由当前画笔画轮廓,由当前画刷填充。
  函数原型:BOOL RoundRect(HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, int nWidth, int nHeight);
  参数:
  hdc:设备环境句柄。
  nLeftRect:指定矩形左上角的X坐标。
  nTopRect:指定矩形左上角的Y坐标。
  nRightRect:指定矩形右下角的X坐标。
  nbottomRect:指定矩形右下角的Y坐标。
  nWidth:指定用来画圆角的椭圆的宽。
  nHeight:指定用来画圆角的椭圆的高。
  返回值:如果函数调用成功,则返回值非空,否则返回值是0。

详见:http://baike.baidu.com/view/1080744.htm


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值