GDI+和GDI的一些基本图形描绘方法函数对比
来源:互联网 发布:mac怎么卸载输入法 编辑:程序博客网 时间:2024/05/18 01:15
GDI+
GDI
// 清空背景
SolidBrush brush(Color(255, 255,255,255));
using namespace Gdiplus;
pGraphics->FillRectangle(&brush,0,0,m_winWidth,m_winHeight);
//-------------------------------------------
// 画笔准备
int PenWidth = theApp.m_optionDlg.m_iSliderPenWidth;
Pen pen(Color(255, 0, 0, 255), PenWidth);
Pen pen2(Color(255, 255, 0, 0), PenWidth);
//-------------------------------------------
// 画对角线
pGraphics->DrawLine(&pen,pRect->left,pRect->top,pRect->right, pRect->bottom);
pGraphics->DrawLine(&pen,pRect->right,pRect->top,pRect->left, pRect->bottom);
//-------------------------------------------
// 画格子
for (int y = 0; y < m_winHeight; y += 10) {
pGraphics->DrawLine(&pen, 0, y, m_winWidth, y);
}
for (int x = 0; x < m_winWidth; x += 10) {
pGraphics->DrawLine(&pen, x, 0, x, m_winHeight);
}
//-------------------------------------------
// 画圆弧
pGraphics->DrawArc(&pen2, 0,0, 100,100, 0.0f,360.0f);
//-------------------------------------------
//画填充多边形
SolidBrush fillPolyBrush(Color(128, 255, 0, 0));
Point point1(100, 100);
Point point2(200, 130);
Point point3(250, 160);
Point point4(150, 200);
Point point5( 70, 130);
Point points[5] = {point1, point2, point3, point4, point5};
pGraphics->FillPolygon(&fillPolyBrush, points, 5);
//-------------------------------------------
// 字符串
if (theApp.m_optionDlg.m_strDrawString != "") {
// UNICODE 字串变换
_bstr_t bstr(theApp.m_optionDlg.m_strDrawString );
Font myFont(L"Arial", 42);
PointF origin( 0.0f, 0.0f);
SolidBrush blackBrush(Color(255, 0, 0, 0));
StringFormat format;
format.SetAlignment (StringAlignmentCenter);
pGraphics->DrawString(
bstr,
bstr.length(),
&myFont,
origin,
&blackBrush);
}
// 清空背景
CBrush brush;
brush.CreateSolidBrush (RGB(255, 255, 255));
//-------------------------------------------
//初始画刷保存
CBrush OrigBrush;
CBrush *pTmpBrush = (CBrush*)pDC->SelectObject(brush);
OrigBrush.FromHandle ((HBRUSH)pTmpBrush);
pDC->Rectangle(pRect);
pDC->SelectObject(&OrigBrush);
brush.DeleteObject ();
//-------------------------------------------
// 画笔准备
int PenWidth = theApp.m_optionDlg.m_iSliderPenWidth;
CPen pen(PS_SOLID, PenWidth, RGB(0, 0, 255));
CPen pen2(PS_SOLID, PenWidth, RGB(255, 0, 0));
//初始画笔保存
CPen OrigPen;
CPen *pTmpPen = (CPen*)pDC->SelectObject(pen);
OrigPen.FromHandle ((HPEN)pTmpPen);
//-------------------------------------------
// 画笔准备
pDC->MoveTo(pRect->left, pRect->top);
pDC->LineTo(pRect->right, pRect->bottom);
pDC->MoveTo(pRect->right, pRect->top);
pDC->LineTo(pRect->left, pRect->bottom);
//-------------------------------------------
// 画格子
for (int y = 0; y < m_winHeight; y += 10) {
pDC->MoveTo(0, y);
pDC->LineTo(m_winWidth, y);}
for (int x = 0; x < m_winWidth; x += 10) {
pDC->MoveTo(x, 0);
pDC->LineTo(x, m_winHeight);}
pDC->SelectObject(&OrigPen);
pen.DeleteObject ();
//-------------------------------------------
// 画圆弧
long width, height;
POINT cpos;
double r,srad,erad;
const double m_pi = 3.1415926535758932;
width = 100 - 0;
height = 100 - 0;
cpos.x = 0 + (long)(width / 2.0);
cpos.y = 0 + (long)(height / 2.0);
r = max(width / 2.0, height / 2.0);
srad = 0.0 * m_pi / 180.0;
erad = (0.0 + 360.0) * m_pi / 180.0;
pTmpPen = (CPen*)pDC->SelectObject(pen2);
pDC->Arc(0,0, 100,100,
cpos.x + (long)(r * cos(srad)),
cpos.y + (long)(r * sin(srad)),
cpos.x + (long)(r * cos(erad)),
cpos.y + (long)(r * sin(erad)));
pDC->SelectObject(&OrigPen);
pen2.DeleteObject ();
//-------------------------------------------
//画填充多边形
CBrush fillPolyBrush;
fillPolyBrush.CreateSolidBrush (RGB(255, 0, 0));
pTmpBrush = (CBrush*)pDC->SelectObject(fillPolyBrush);
CPoint point1(100, 100);
CPoint point2(200, 130);
CPoint point3(250, 160);
CPoint point4(150, 200);
CPoint point5( 70, 130);
CPoint points[5] = {point1, point2, point3, point4, point5};
pDC->Polygon(points, 5);
pDC->SelectObject(&OrigBrush);
fillPolyBrush.DeleteObject ();
//-------------------------------------------
// 字符串
if (theApp.m_optionDlg.m_strDrawString != "") {
//UNICODE 字串变换
_bstr_t bstr(theApp.m_optionDlg.m_strDrawString );
CFont myFont;
CFont OrigFont;
myFont.CreatePointFont (420, "Arial");
CFont *pTmpFont = (CFont*)pDC->SelectObject(myFont);
OrigFont.FromHandle ((HFONT)pTmpFont);
CBrush blackBrush;
blackBrush.CreateSolidBrush (RGB(0, 0, 0));
pTmpBrush = (CBrush*)pDC->SelectObject(blackBrush);
//pDC->SetTextAlign(TA_CENTER);
pDC->TextOut(0, 0, bstr, bstr.length());
pDC->SelectObject(&OrigFont);
myFont.DeleteObject();
}
GDI+ GDI 备注 轮廓线 填充 DrawArc - Arc 圆弧 - - AngleArc 线段和圆弧 - - ArcTo 椭圆的圆弧 - - Chord 圆弧和线段组成的半月形 DrawEllipse FillEllipse Ellipse 圆和椭圆 DrawLines - Polyline PolyLineTo 一组线段组成的线段群 - - PolyPolyline 一组线段群 DrawPolygon FillPolygon Polygon 多边形 - - PolyPolygon 一组多边形 DrawBezier - - 由 4个点定义的贝塞尔曲线 DrawBeziers - PolyBezier PolyBezierTo 一个以上的贝塞尔曲线 DrawPath FillPath FillPath 路径 DrawRectangle FillRectangle Rectangle 矩形 DrawRectangles FillRectangles - 一组矩形 - - RoundRect 圆弧端角的矩形 - FillRegion PaintRgn FillRgn Region 内部填充 DrawString - TextOut 字符串 DrawClosedCurve FillClosedCurve - 闭合 Curve曲线 DrawCurve - - Curve 曲线 DrawIcon - - 在指定坐标处绘制由指定的 Icon 对象表示的图像。 DrawIconUnstretched - - Icon 对象表示的图像,而不缩放该图像。 DrawImage - StretchBlt StretchDIBits 在指定位置并且按原始大小绘制指定的 Image 对象 DrawImageUnscaled - BitBlt 在由坐标对指定的位置,使用图像的原始物理大小绘制指定的图像。GDI+与GDI绘图函数的对比
DrawPie FillPie Pie 扇形
DrawLine - LineTo MoveToEx 从现在位置开始到终点的直线
- GDI+和GDI的一些基本图形描绘方法函数对比
- GDI+和GDI的一些基本图形描绘方法的对比
- GDI+和GDI的一些基本图形描绘方法的对比
- GDI图形图形的一些函数
- GDI+ 和 GDI的对比
- GDI基本图形
- GDI 基本图形
- 053 函数图形的描绘
- 有关c#GDI绘图的一些方法
- 提高GDI+绘制效率的一些方法
- GDI基础函数使用绘制线条和图形
- GDI和DIB的一些笔记
- GDI的一些知识点
- GDI+的一些问题
- GDI+的一些资源
- 保存GDI+绘制的图形
- GDI绘制简单的图形
- HTML5 canvas 画布的建立和描绘一些基本样式
- 系统调度-ing
- 在WindowsMobile中使用GDI+
- GDI+ 画刷、矩阵、基本绘图函数、文字、图像
- Windows 和 Linux 下生成以当前时间命名的文件
- IE和Firefox在JS和CSS方面的兼容性
- GDI+和GDI的一些基本图形描绘方法函数对比
- 关于列表操作内容
- Parlary
- 嵌入式linux文件系统启动脚本及分析
- GDI 与WPF中的颜色简析
- JSP中年、日、月,周访问量统计方法
- 开源类库操作excel文章,分页导出数据等等
- TI OMAPL138B Linux不能启动的问题解决
- hdu 3794 Magic Coupon