重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
最简单的方法就是在视图类中获取DC,然后直接调用DC中的画图函数。
前郭ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!
比如HDC dc=getdc();
dc.moveto(x,y);
dc.linet(x1,y1);
就是画一条x,y到x1,y1的直线
你有学习其他东西的功夫,就足够把GDI学好了,
VC下绘图使用GDI
给你个例子,创建一个单文档程序,在View类得OnDraw函数的尾部添加下面的代码,然后编译执行
CPen penRed(PS_SOLID,3,RGB(255,0,0));
CPen* pOldPen=NULL;
pOldPen=pDC-SelectObject(penRed);
CRect rcClient;
GetClientRect(rcClient);
CBrush brBlue(RGB(0,0,255));
CBrush* pOldBrush=NULL;
pOldBrush=pDC-SelectObject(brBlue);
for(int w=0;w2;w++)
{
const int nPoints=5;
double nAngle=(720.0/57.295)/(double)nPoints;
int xOffset=(w?1:-1)*rcClient.Width()/3;
pDC-SetPolyFillMode(w?ALTERNATE:WINDING);
CPoint ptPolyAr[nPoints];
for(int i=0;inPoints;i++)
{
ptPolyAr[i].x=xOffset+(long)(sin((double)i*nAngle)*100.0);
ptPolyAr[i].y=(long)(cos((double)i*nAngle)*100.0);
ptPolyAr[i]+=rcClient.CenterPoint();
}
pDC-Polygon(ptPolyAr,nPoints);
}
pDC-SelectObject(pOldBrush);
pDC-SelectObject(pOldPen);
graphics.h是TC下使用的库
建立MFC文件,添加菜单“功能性按键”时选择“CVIEW”
函数内容如下(我用的Visual studio 2010,可能有些版本不同导致操作不同)
CDC*pDC=GetDC();//得到绘图类指针
RedrawWindow();//重建窗口
pDC-Rectangle(50,20,700,400);//以默认画笔画一矩形
CPen bluepen(PS_DASH,1,RGB(0,0,255));//创建画虚线,线宽为1的蓝色画笔
CPen*old=pDC-SelectObject(bluepen);
pDC-Ellipse(100,50,250,200);//画圆
CPen redpen(PS_SOLID,2,RGB(255,0,0));//创建画实线,线宽为2的红色画笔
pDC-SelectObject(redpen);
pDC-Ellipse(500,50,650,200);//画圆
pDC-MoveTo(375,100);//画一三角形
pDC-LineTo(225,300);
pDC-LineTo(525,300);
pDC-LineTo(375,100);
CBrush greenBrush(RGB(0,255,0));//创建纯色的绿色画笔刷
pDC-SelectObject(greenBrush);
pDC-FloodFill(375,200,RGB(255,0,0));//以纯色绿笔刷填充三角形
CBrush green1Brush(HS_FDIAGONAL,RGB(0,255,0));//创建影线为斜线的绿色笔刷
pDC-SelectObject(green1Brush);
pDC-FloodFill(600,150,RGB(255,0,0));//以绿色斜线笔刷填充圆
pDC-SelectObject(old);//释放创建的画笔,回复原来的画笔
pDC-TextOut(335,250,"HELLO WORLD,It's my first computer graphic work!");//输出字符
ReleaseDC(pDC);//释放创建的CDC对象