VC画图

来源:互联网 发布:windows whistler2267 编辑:程序博客网 时间:2024/04/28 12:04

1、画笔 

有两种形式创建画笔 

一是直接通过GetStockObject()函数来调用 

二是通过创建画笔来调用 

 HPEN CreatePen( 
  int fnPenStyle,    // pen style 
  int nWidth,        // pen width 
  COLORREF crColor   // pen color 
); 
  

创建画笔后必须调用SelectObject函数来将起选入设备环境; 

删除画笔可通过DeleteObject 函数来实现; 

2、画刷 

创建画刷 

一是通过GetStockObject函数来调用 

二是通过调用CreateSolidBrush CreateHatchBrush来创建画刷 

HBRUSH CreateSolidBrush( 
  COLORREF crColor   // brush color value 
);HBRUSH CreateHatchBrush( 
  int fnStyle,      // hatch style 
  COLORREF clrref   // color value 
); 
3、颜色通过RGB函数来实现;4、常用的绘图函数设置画笔当前的位置函数MoveToExBOOL MoveToEx( 
  HDC hdc,          // handle to device context 
  int X,            // x-coordinate of new current position 
  int Y,            // y-coordinate of new current position 
  LPPOINT lpPoint   // pointer to old current position 
); 
从当前位置向指定坐标点画直线的函数LineToBOOL LineTo( 
  HDC hdc,    // device context handle 
  int nXEnd,  // x-coordinate of line's ending point 
  int nYEnd   // y-coordinate of line's ending point 
); 
从当前位置开始,依次用线段连接lpPoints中指定各点的函数PolylineBOOL Polyline( 
  HDC hdc,            // handle to device context 
  CONST POINT *lppt,  // pointer to array containing endpoints 
  int cPoints         // number of points in the array 
); 
椭圆弧线ArcBOOL Arc( 
  HDC hdc,         // handle to device context 
  int nLeftRect,   // x-coord of bounding rectangle's upper-left corner 
  int nTopRect,    // y-coord of bounding rectangle's upper-left corner 
  int nRightRect,  // x-coord of bounding rectangle's lower-right corner 
  int nBottomRect, // y-coord of bounding rectangle's lower-right corner 
  int nXStartArc,  // first radial ending point 
  int nYStartArc,  // first radial ending point 
  int nXEndArc,    // second radial ending point 
  int nYEndArc     // second radial ending point 
); 
画一个饼图并用当前的画刷进行填充PieBOOL Pie( 
  HDC hdc,         // handle to device context 
  int nLeftRect,   // x-coord of bounding rectangle's upper-left corner 
  int nTopRect,    // y-coord of bounding rectangle's upper-left corner 
  int nRightRect,  // x-coord of bounding rectangle's lower-right corner 
  int nBottomRect, // y-coord of bounding rectangle's lower-right corner 
  int nXRadial1,   // x-coord of first radial's endpoint 
  int nYRadial1,   // y-coord of first radial's endpoint 
  int nXRadial2,   // x-coord of second radial's endpoint 
  int nYRadial2    // y-coord of second radial's endpoint 
); 
 画一个矩形,并填充RectangleBOOL Rectangle( 
  HDC hdc,         // handle to device context 
  int nLeftRect,   // x-coord of bounding rectangle's upper-left corner 
  int nTopRect,    // y-coord of bounding rectangle's upper-left corner 
  int nRightRect,  // x-coord of bounding rectangle's lower-right corner 
  int nBottomRect  // y-coord of bounding rectangle's lower-right corner 
); 
画一个椭圆并填充EllipseBOOL Ellipse( 
  HDC hdc,        // handle to device context 
  int nLeftRect,  // x-coord of bounding rectangle's upper-left corner 
  int nTopRect,   // y-coord of bounding rectangle's upper-left corner 
  int nRightRect, // x-coord of bounding rectangle's lower-right corner 
  int nBottomRect // y-coord of bounding rectangle's lower-right corner 
); 
画一个多边形,并进行填充PolygonBOOL Polygon( 
  HDC hdc,                // handle to device context 
  CONST POINT *lpPoints,  // pointer to polygon's vertices 
  int nCount              // count of polygon's vertices 
); 
InvalidateRect 函数的作用是刷新用户区,(使区域无效)