绘图二 框图 画笔 画刷

来源:互联网 发布:炫浪网络社区在线阅读 编辑:程序博客网 时间:2024/05/21 08:13
/*  * 绘图 *  * Rectangle(HDC, int, int, int, int); // 绘制矩形 * Ellipse(HDC, int, int, int, int);   // 绘制椭圆 * RoundRect                           // 绘制圆角矩形 *  * Arc                                 // 圆弧 * Chord                               // 弓形 * Pie                                 // 扇形  * PolyBezier                          // 贝赛尔曲线 * * SelectObject                        // 选择一个GDI对象 *  * HPEN                                // 画笔句柄 * CreatePen                           // 创建画笔 * CreatePenIndirect                   // 创建逻辑画笔 * LOGPEN                              // 逻辑画笔 * * DeleteObject                        // 删除一个GDI对象 * * GetStockObject                      // 获取备用对象 BLACK_PEN, GRAY_BRUSH * * GetObject(hPen, sizeof(LOGPEN), (LPVOID)&logpen);  // 根据画笔句柄,获得LOGPEN结构 * * GetCurrentObject(hdc, OBJ_PEN)      // 获得当前选入的画笔句柄 * * SetBkColor                          // 设置背景色 * GetBkColor                          // 获得背景色 * * SetBkMode                           // 设置背景模式 OPAQUE(不透明),默认; TRANSPARENT(透明) * GetBkMode                           // 获得背景模式 * * 光栅操作 ROP (raster operation); ROP2 二元光栅操作 * SetROP2                             // 设置绘图模式 * GetROP2 * * HBRUSH                              // 画刷句柄 * * SelectObject(hdc, GetStockObject(NULL_PEN)) // 绘制不含边框的图形 * SelectObject(hdc, GetStockObject(NULL_BRUSH))// 绘制不填充内部图形的边框 * * Polygon                             // 绘制多边形 * PolyPolygon *  * SetPolyFillMode                     // 多边形填充模式 默认ALTERNATE(交替); WINDING(螺旋) * * 五种方式建立画刷 * 1. CreateSolidBrush * 2. CreateHatchBrush                 // 阴影线画刷 * 3. CreatePatternBruash              // 位图画刷 * 4. CreateDIBPatternBrushPt          // 位图画刷 * 5. CreateBruashIndirect    LOGBRUSH // 逻辑画刷 * * GetObject(hBrush, sizeof(LOGBRUSH), (LPVOID)&logbrush); */void DrawGraph(HDC hdc){Rectangle(hdc, 10, 10, 200, 400);Ellipse(hdc, 10, 10, 200, 400);int xyCornerEllipse = 900 - 500; // 使用相同的值,可以使角比较圆,参考P124RoundRect(hdc, 500, 100, 900, 700, xyCornerEllipse, xyCornerEllipse);}void DrawGraph2(HDC hdc){Pie(hdc,100, 100, 400, 200, 250, 100, 100, 250);}void DrawPen(HDC hdc){HPEN hPen = CreatePen(PS_SOLID, 1, BLACK_PEN);SelectObject(hdc, hPen);// 画线MoveToEx(hdc, 10, 10, NULL);LineTo(hdc, 300, 10);DeleteObject(SelectObject(hdc, GetStockObject(BLACK_PEN))); // 先选入,再删除// 创建画笔二LOGPEN logpen;POINT pt;pt.x = 1;logpen.lopnStyle = PS_DASH;logpen.lopnWidth = pt;logpen.lopnColor = BLACK_PEN;hPen = CreatePenIndirect(&logpen);HGDIOBJ hOldPen = SelectObject(hdc, hPen);MoveToEx(hdc, 10, 30, NULL);LineTo(hdc, 300, 30);DeleteObject(hOldPen);}