zoukankan      html  css  js  c++  java
  • MFC绘图小实验(3)

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

        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,请使用同心椭圆和同心圆绘制一个图形。

        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));

  • 相关阅读:
    BZOJ 4805: 欧拉函数求和 杜教筛
    BZOJ 2694: Lcm 莫比乌斯反演 + 积性函数 + 线性筛 + 卡常
    BZOJ 2693: jzptab 莫比乌斯反演 + 积性函数 + 筛法
    BZOJ 2154: Crash的数字表格 莫比乌斯反演
    BZOJ 3884: 上帝与集合的正确用法 扩展欧拉定理 + 快速幂
    BZOJ 3595: [Scoi2014]方伯伯的Oj Splay + 动态裂点 + 卡常
    GitHub的使用
    Selenium模块的安装
    关于__new__和__init__
    博客一键保存本地exe可视化界面文件
  • 原文地址:https://www.cnblogs.com/OctoptusLian/p/6724228.html
Copyright © 2011-2022 走看看