• MFC-从GDI到GDI+


    VS2012

    hpp
    
    //GDI+的头文件
    #include <gdiplus.h>
    
    using namespace Gdiplus;
    
    #pragma comment(lib,"gdiplus.lib")
    
    
    
        //定义两个变量
        GdiplusStartupInput m_pGdiplusStartupInput;
        ULONG_PTR m_pGdiToken;
    
    
    
    
    cpp
    
    BOOL CDemoDlg::OnInitDialog()
    
        //初始化GDI+
        GdiplusStartup(&m_pGdiToken, &m_pGdiplusStartupInput, NULL);
    
    
    
    
    
    void CDemoDlg::OnBnClickedButton1()
    {
        // TODO:  在此添加控件通知处理程序代码
    
        //先用GDI,GDI里最重要的就是DC
    
        //GDI写字
        CDC* pDC = this->GetDC();
    
        //创建字体
        CFont font;
        font.CreatePointFont(160, "宋体");
        CFont* pOldFont = pDC->SelectObject(&font);
    
        //设置为透明的
        pDC->SetBkMode(TRANSPARENT);
    
        //改变颜色(红色)
        pDC->SetTextColor(RGB(255, 0, 0));
    
        //输出字符串
        pDC->TextOut(100, 130, "Hello GDI");
    
        //新的字体用完,把旧的字体放回去
        pDC->SelectObject(pOldFont);
    
        //GDI画线
        CPen pen;
        pen.CreatePen(PS_SOLID, 1, RGB(255, 0, 0));
        CPen* pOldPen = pDC->SelectObject(&pen);
        pDC->MoveTo(100, 200);
        pDC->LineTo(500, 200);
        pDC->SelectObject(pOldPen);
    }
    
    
    
    void CDemoDlg::OnBnClickedButton2()
    {
        // TODO:  在此添加控件通知处理程序代码
    
        //GDI+,GDI+的核心是Graphics对象
        //创建图形对象,GDI+必须使用宽字符
        Graphics g(this->m_hWnd);//传入窗口句柄
        //创建画刷
        SolidBrush brush(Color(255, 0, 0, 255));
        //创建字体
        FontFamily fontFamily(L"宋体");
        Gdiplus::Font f(&fontFamily, 16);
        PointF point(200.0f, 130.0f);
        g.DrawString(L"Hello GDI+", 10, &f, point, &brush);
    
        //画线
        Pen p(Color(255, 0, 0, 255));
        g.DrawLine(&p, 100, 260, 500, 260);
    }
    
    
    
    void CDemoDlg::OnDestroy()
    {
        CDialogEx::OnDestroy();
    
        // TODO:  在此处添加消息处理程序代码
    
        //销毁窗口时卸载GDI+
        GdiplusShutdown(m_pGdiToken);
    }
    
    Caesar卢尚宇
    2021年1月22日

    作者: 阿飞

    出处: https://www.cnblogs.com/nxopen2018/>

    关于作者:......

    如有问题, 可在底部(留言)咨询.

  • 相关阅读:
    怎样编写YARN应用程序
    Oracle整形转字符串to_char()
    js 前加分号和感叹号的含义
    Android 多屏适配解决方式
    nginx负载均衡基于ip_hash的session粘帖
    mysql锁SELECT FOR UPDATE【转】
    redis主从复制
    mysql 优化实例之索引创建
    mysql sql优化实例
    MySQL 慢查询日志分析及可视化结果
  • 原文地址:https://www.cnblogs.com/nxopen2018/p/14314982.html
Copyright © 2020-2023  润新知