zoukankan      html  css  js  c++  java
  • 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/>

    关于作者:......

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

  • 相关阅读:
    委托、事件入门(转)
    ArcToolBox——Clip 批量处理
    Geometry 对象浅析 ( 作者:Flyingis)
    AE数据加载
    ADO.NET 的最佳实践技巧(转)
    android调用.net wcf 服的方法
    winform调用dos命令
    变位词实现 编程珠玑一处错误
    元素翻转
    80X86学习笔记转移指令
  • 原文地址:https://www.cnblogs.com/nxopen2018/p/14314982.html
Copyright © 2011-2022 走看看