前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MFC绘图小实验(3)

MFC绘图小实验(3)

作者头像
Zoctopus
发布2018-06-04 11:17:39
4850
发布2018-06-04 11:17:39
举报
文章被收录于专栏:章鱼的慢慢技术路

1,使用默认的文本背景模式,在点(-200,20)处输出黄底红字“Computer Graphics Based on VC++”;在(50,20)处输出黄底红字“BoChuang Research Institute”;使用透明文本背景模式在(-200,-20)处输出黑色整数5和8;在(0,-20)处输出黑色双精度浮点数(5.2,8.3)。

代码语言:javascript
复制
    CRect rect;  //定义矩形
    GetClientRect(&rect);  //获得客户区矩形
    pDC->SetMapMode(MM_ANISOTROPIC);  //设置映射模式
    pDC->SetWindowExt(rect.Width(),rect.Height());  //设置窗口
    pDC->SetViewportExt(rect.Width(),-rect.Height());  //设置视区:x轴水平向右为正,y轴垂直向上为正
    pDC->SetViewportOrg(rect.Width()/2,rect.Height()/2);  //设置客户区中心为坐标系原点
    rect.OffsetRect(-rect.Width()/2,-rect.Height()/2);  //客户区矩形校正

    pDC->SetTextColor(RGB(255,0,0));  //字体颜色为红色
    pDC->SetBkColor(RGB(255,255,0));  //背景色:红+绿=黄
    pDC->TextOut(-200,20,"Computer Graphics Based on VC++");  //输出文本1
    CString data,str="BoChuang Research Institute";
    data.Format("%s",str);  //输出文本2
    pDC->TextOut(50,20,data);
    pDC->SetTextColor(RGB(0,0,0));
    pDC->SetBkMode(TRANSPARENT);  //设置背景模式,透明
    int i1=5,i2=8;
    double d1=5.2,d2=8.3;
    data.Format("%d,%d",i1,i2);  //输出整数
    pDC->TextOut(-200,-20,data);
    data.Format("%f,%f",d1,d2);  //输出小数
    pDC->TextOut(0,-20,data);

2,请使用同心椭圆和同心圆绘制一个图形。

代码语言:javascript
复制
    CRect rect;  //定义矩形
    GetClientRect(&rect);  //获得客户区矩形
    pDC->SetMapMode(MM_ANISOTROPIC);  //设置映射模式
    pDC->SetWindowExt(rect.Width(),rect.Height());  //设置窗口
    pDC->SetViewportExt(rect.Width(),-rect.Height());  //设置视区:x轴水平向右为正,y轴垂直向上为正
    pDC->SetViewportOrg(rect.Width()/2,rect.Height()/2);  //设置客户区中心为坐标系原点
    rect.OffsetRect(-rect.Width()/2,-rect.Height()/2);  //客户区矩形校正

    CPoint ld,rt;  //定义椭圆形外接矩形的左下角点与右上角点坐标
    /*绘制外部黑色椭圆*/
    ld=CPoint(-200,-150),rt=CPoint(200,150);
    CBrush NewBrush,*pOldBrush;
    NewBrush.CreateSolidBrush(RGB(0,0,0));
    pOldBrush=pDC->SelectObject(&NewBrush);
    pDC->Ellipse(CRect(ld,rt));
    pDC->SelectObject(pOldBrush);
    NewBrush.DeleteObject();
    /*绘制外部白色圆*/
    ld=CPoint(-147,-147),rt=CPoint(147,147);
    pDC->Ellipse(CRect(ld,rt));
    /*绘制内部黑色圆*/
    ld=CPoint(-140,-90),rt=CPoint(140,90);
    NewBrush.CreateSolidBrush(RGB(0,0,0));
    pOldBrush=pDC->SelectObject(&NewBrush);
    pDC->Ellipse(CRect(ld,rt));
    pDC->SelectObject(pOldBrush);
    NewBrush.DeleteObject();
    /*绘制内部白色圆*/
    ld=CPoint(-88,-88),rt=CPoint(88,88);
    pDC->Ellipse(CRect(ld,rt));
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-04-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1,使用默认的文本背景模式,在点(-200,20)处输出黄底红字“Computer Graphics Based on VC++”;在(50,20)处输出黄底红字“BoChuang Research Institute”;使用透明文本背景模式在(-200,-20)处输出黑色整数5和8;在(0,-20)处输出黑色双精度浮点数(5.2,8.3)。
  • 2,请使用同心椭圆和同心圆绘制一个图形。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档