MFC自绘精美控件
程序员文章站
2022-05-28 19:40:10
...
C++自绘漂亮表盘、柱状图、饼图、立体管道,先看效果图
一、引入GDI
-
Stadfx.h中添加:
#include <GdiPlus.h> using namespace Gdiplus; #pragma comment(lib, "gdiplus.lib")
-
在工程文件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://download.csdn.net/download/li634471989/11184089
https://download.csdn.net/download/li634471989/11184103
https://download.csdn.net/download/li634471989/11184108
https://download.csdn.net/download/li634471989/11235994