MFC自绘精美控件

C++自绘漂亮表盘、柱状图、饼图、立体管道,先看效果图

在这里插入图片描述
在这里插入图片描述

一、引入GDI

  1. Stadfx.h中添加:

    #include  <GdiPlus.h>
    using  namespace Gdiplus;
    #pragma comment(lib, "gdiplus.lib")
    
  2. 在工程文件OnInitDialog()中return true前添加:

    {
           .......
         Gdiplus::GdiplusStartupInput StartupInput;
         GdiplusStartup(&m_gdiplusToken,&StartupInput, NULL);       
     }
    

别忘了头文件中ULONG_PTR m_gdiplusToken;
二、引入cpp和h文件(源码中的文件)
在这里插入图片描述
三、在dialog中添加一个static控件

   更改ID为IDC_Meter,并在resource.h中更改ID号。

四、在第三步dialog所属的头文件中,

   1. 添加需要引用的类,例如:#include "MyMeter.h"
   2 .MyMeter实例化,定义其对象:CMyMeter m_Mymeter;//表盘

五、在第四步对应的cpp中:

 DoDataExchange(CDataExchange* pDX)中添加:
 
{
        DDX_Control(pDX, IDC_Meter, m_Mymeter);//表盘
 }

六、该类对外有两接口函数:

   SetRange(0,100);//调整范围 
   SetValue(0)//设定值

1.新建一按钮,更改按钮名称为调整范围,在其响应函数中添加:

   Mymeter.SetRange(0, 50);

2.表盘需要实时显示实际现场数值:可以在定时器中添加:

  m_Mymeter.SetValue(m_value);//m_value为具体的值。

七、GDI释放
为窗口CPP添加析构函数(就是你初始化GDI的那个CPP)

   CTestGdIDlg::~CTestGdIDlg()
   {
      Gdiplus::GdiplusShutdown(m_gdiplusToken);
   }

运行就能看到效果了
链接:https://pan.baidu.com/s/1iLixGYC8tz-luN9AfKKupg
提取码:rv38

  • 13
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值