1、第二章 一个简单的二维光栅图形软件包-Windows API 简介 用图形软件包绘图 基本的交互处理 光栅操作1用图形软件包绘图( 1/6) 图元的声明 绘图纸,屏幕,坐标系 扫描转换:将转换为点阵表示的图形扫描转换顶点(参数)表示的图形用户点阵表示的图形显示系统2用图形软件包绘图 (2/6) 点COLORREF GetPixel( int x, int y ) constCOLORREF SetPixel( int x, int y, COLORREF crColor ); 直线段CPoint MoveTo( int x, int y );BOOL LineTo( int x, int y
2、); 折线BOOL Polyline( LPPOINT lpPoints, int nCount );3用图形软件包绘图 (3/6) 圆弧BOOL AngleArc( int x, int y, int nRadius, float fStartAngle, float fSweepAngle ); 椭圆弧BOOL Arc( int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4 );( x3,y3)(x4,y4)4用图形软件包绘图( 4/6) 图元的属性 线型、线宽CPen ( int nPenStyle, int nWi
3、dth, COLORREF crColor );BOOL CreatePen (int nPenStyle,int nWidth,COLORREF crColor); 颜色 三种指定颜色的方式 通过查色表索引值 通过颜色名称 通过红、绿、兰三分量COLORREF GetBkColor( ) const;COLORREF SetBkColor( COLORREF crColor );COLORREF GetTextColor( ) const;COLORREF SetTextColor( COLORREF crColor );5用图形软件包绘图( 5/6) 填充图元及其属性 椭圆BOOL Ell
4、ipse( int x1, int y1, int x2, int y2 );BOOL Pie( int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4 ); 多边形BOOL Polygon( LPPOINT lpPoints, int nCount ); 矩形BOOL Rectangle( int x1, int y1, int x2, int y2 ); 填充模式 均匀填色BOOL CreateSolidBrush( COLORREF crColor ); 以图像填充BOOL CreatePatternBrush( CB
5、itmap* pBitmap );6基本的交互处理 事件驱动方式 简单的程序结构初始化;DowaitEvent(event);Switch(event)Case EVENT1: precedure1;break;Case EVENT2: procedure2;break;while(TRUE);7光栅操作 裁剪窗口 为什么裁剪? 内裁剪:保留窗口之内的图形 外裁剪:保留窗口之外的图形UINT SetBoundsRect( LPCRECT lpRectBounds, UINT flags );UINT GetBoundsRect( LPRECT lpRectBounds, UINT flags );8