注册 登录
编程论坛 VC++/MFC

一个仪表面板所用的数值指示器

hlmzrdongdong 发布于 2012-03-22 21:16, 723 次点击
<p>一些测量仪器上有一些指针式的数值指示器,今天这篇帖子将告诉你怎样在VC++中实现这种指示,首先看看效果图:<br></p>
只有本站会员才能查看附件,请 登录

这个小程序最重要的是那个指示器类C3DMeterCtrl。下面将简要介绍一下其实现过程。
Step1:建立一个基于Document/View的MFC工程,我的工程名为Monitor,需要注意的是最后一步应将视的基类从CView换成CFormView。

Step2:在资源视图的FORM中添加两个图片控件,并分别给这两个控件添加控件变量m_MeterCtrl1、m_MeterCtrl
    C3DMeterCtrl    m_MeterCtrl2;
    C3DMeterCtrl    m_MeterCtrl1;

Step3:将本例程中的C3DMeterCtrl.cpp、C3DMeterCtrl.h和MemDC.h拷贝到您的工程下。
其中C3DMeterCtrl.h是这个指示器控件类的定义文件,C3DMeterCtrl.cpp是实现文件。MemDC.h是内存DC文件。

Step4:在MonitorView.h添加指示器的包含文件
#include "3DMeterCtrl.h"

Step5:在MonitorView.cpp的OnInitialUpdate()函数中初始化控件:
程序代码:
CString szUnit;
szUnit.Format("温度");
m_MeterCtrl1.SetUnits(szUnit);
m_MeterCtrl1.UpdateNeedle(-1.34);
szUnit.Format("压力");
m_MeterCtrl2.SetUnits(szUnit);
m_MeterCtrl2.UpdateNeedle(2.04);

好了,可以运行一下看看效果。其实这个类还有一些其他方法调用,比如设置仪表的最大与最小值,小数点位数等等。自己不妨一试。

Contract me,QQ:726921679.
源码下载
只有本站会员才能查看附件,请 登录


[ 本帖最后由 hlmzrdongdong 于 2012-3-22 21:30 编辑 ]
1 回复
#2
drci2012-09-26 12:00
在自动控制中很有用的
1