没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|其它|编辑:郝浩|2005-06-15 12:25:00.000|阅读 1827 次
概述:
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
以曲线或柱状图实时显示数据的控件
这是一款可以以曲线或柱状图的形式实时动态显示数据的控件。
主要特点是:支持显示浮点数、负数,显示数据范围大、可以自定义显示范围也可自动选择范围,还可锁定显示范围。
主要技术来源于网上,我只是对其分离改进了一下。有需要的朋友可以看看或联系我
Email: wlzqin@3stonesoft.com
wlzqin@sina.com
QQ :8573980
MSN :wlzqi@hotmail.com
源码下载
使用方法:
1.首先放一个CButton,并对这个按钮生成一个对象。例如 CButton m_btn ;
2.更改按钮的类名 改为 CMulticolorPlotBtn m_btn
3.初始化: 初始化由自己绝对初始化那些(当然也可省略这步)
4。显示数据。m_btn.SetData( ( float ) rand () ) ;
//////////////////////////////////// MulticolorPlotBtn.h
////////////////////////////////////
/*
模块名称:MulticolorPlotBtn.h
版 本:0.1 Alpha
版 权:Copyright (C) 2005 wlzqin
模块功能:动态图表显示数据
作 者:wlzqi
作者邮箱:mailto:wlzqin@3stonesoft.com
建立时间:22005年6月14日 乙酉 鸡年五月初八
最后修改:by wlzqi
修改历程:
注意事项:
备 注:支持 UNICODE 和 ANSI 编码
:测试平台 Windows 2000、IE6、Direcx9、 AMD Xp 2000 + CPU
:不兼容 Windows 98
功能简介:动态实时显示数据,显示方式有BAR和LINE(其它方式以后添加)
,可动态实时改变曲线属性。支持任意范围数据,可设定范围,
也可不设定显示范围(自动寻找最符合的范围),还可任意锁定
(自由)范围。支持浮点数。
*/
#pragma once
#include "afxwin.h"
#include <math.h>
#define BAR 0
#define LINE 1
class CMulticolorPlotBtn :
public CButton
{
public:
CMulticolorPlotBtn(void) ;
virtual ~CMulticolorPlotBtn(void);
private: // 公共属性
int nPlotType ; // 曲线类型 BAR 或 LINE // BAR
bool bfInit ; // 是否初始化 // false
// 网格X方向上的间距
int nGridResolutionX ; // 10
// 网格Y方向上的间距
int nGridResolutionY ; // 10
// 网格滚动的速度和方向(正值为从左向右滚动和从上到下,否则反之。0不动)
int nGridScrollSpeedX ; // -1
int nGridScrollSpeedY ; // 0
// 数据点分辨率大小(即:一个数据点占据的像素数)
int nPlotGranulatrity ; // 2
// 网格线宽度
int nGridLineWidth ; // 1
// 背景色
COLORREF m_clrDarkBack ; // RGB(0,0,75)
// 前景色
COLORREF m_clrDarkLine ; // RGB(32,64,32)
// 控件矩形
RECT m_rect ;
// 控件的尺寸
CSize m_Size ;
// 控件可容纳可见的数据点数
int nPlotData ; // 0
// 实际数据
float * pfData ; // 0
// 数据范围
float fLow , fHigh ; // 0,0
// 数据比例
float fScaleY ; // 1.0
// 数据点处的颜色
COLORREF m_clrCyanData ; // RGB ( 0,255,255 )
// 画笔
CPen m_GridPen ;
// 数据点位图画刷
CBrush m_clrBrush ;
// 网格开始位置
int nGridStarPosX , nGridStarPosY ; // 0,0
// 锁定显示范围
bool bLock ; // true---锁定
// 控件上显示的字体
CFont m_SmallFont ;
// Y轴刻度的颜色
COLORREF m_clrAxisScaleY ; // RGB ( 0,255,255 )
// 是否显示Y轴刻度数字
int nShowFormatDataText ; // 0---不显示
// 控件标题
TCHAR szTitls [MAX_PATH * sizeof ( TCHAR ) + 1] ; // NULL
// 曲线单位
TCHAR szUints [32 * sizeof ( TCHAR ) + 1] ; // NULL
private:
// 关键代码
CRITICAL_SECTION g_cs ;
public: // 公共方法
// 设置画线的类型
void SetPlotType ( int nType )
{
nPlotType = nType ;
bfInit = false ;
}
// 设置网格间距
void SetGridResolutionX ( int nGridReluX ) { nGridResolutionX = nGridReluX ; }
void SetGridResolutionY ( int nGridReluY ) { nGridResolutionY = nGridReluY ; }
// 设置网格滚动速度
// 正值为从左向右滚动,0不动
void SetGridScrollSpeedX ( int nSpeedX ) { nGridScrollSpeedX = nSpeedX ; }
// 正值为从上到下滚动,0不动
void SetGridScrollSpeedY ( int nSpeedY ) { nGridScrollSpeedY = nSpeedY ; }
// 数据点面积大小(即:一个数据点占据的像素数)
bool SetPlotGranulatrity ( int nPlotGrltiy )
{
nPlotGranulatrity = nPlotGrltiy ;
nPlotData = m_Size.cx / nPlotGranulatrity ;
pfData = new float [ nPlotData ] ;
if ( pfData )
{
// 初始化数据为 0
ZeroMemory ( pfData , sizeof ( pfData ) * nPlotData ) ;
return true ;
}
return true ;
}
// 网格线宽度
void SetGridLineWidth ( int nWidth ) { nGridLineWidth = nWidth ; }
// 背景色
void SetGridBackClr ( COLORREF clr ) { m_clrDarkBack = clr ; }
// 前景色
void SetGridLineClr ( COLORREF clr )
{
m_clrDarkLine = clr ;
m_GridPen.CreatePen ( PS_SOLID , nGridLineWidth , m_clrDarkLine ) ;
m_clrDarkLine = clr ;
}
// 数据范围
void SetRang ( float fL , float fH )
{
fLow = fL ;
fHigh = fH ;
}
// 创建画笔
void SetLinePen ( int nWidth , COLORREF clr )
{
nGridLineWidth = nWidth ;
m_clrDarkLine = clr ;
m_GridPen.CreatePen ( PS_SOLID , nGridLineWidth , m_clrDarkLine ) ;
}
// 锁定数据显示范围
void LockRang ( bool bfLock = true ) ;
void LockRang ( float fMin = 0.0 , float fMax = 100.0 ) ;
// Y轴刻度颜色,bfShow==0显示刻度数字,1仅在左上角显示1000(k/sec)/2000样子的数字,2显示最大最小,3显示全部
void SetAxisScaleClrY ( COLORREF clr = RGB ( 0 , 255 , 255 ) )
{
m_clrAxisScaleY = clr ;
}
// 标题
void SetTitle ( PCTSTR pctTitle = NULL )
{
_stprintf ( szTitls , _TEXT ( "%s" ) , pctTitle ) ;
}
// 数据单位例:SetUnit( _TEXT ( "(k/sec)" ) ) ;
void SetUnit ( PCTSTR pctUint = NULL )
{
_stprintf ( szUints , _TEXT ( "%s" ) , pctUint ) ;
}
// 是否显示数据标题、颜色、单位
/*
nShow = 0 ; 不显示任何文本
nShow = 1 ; 仅仅显示标题
nShow = 2 ; 仅仅显示标题和流量总计
nShow = 3 ; 显示标题和最小值
nShow = 4 ; 显示标题、最小值和中值
*/
void ShowTitle ( int nShow = 1 )
{
nShowFormatDataText = nShow ;
}
private: // BAR属性
// BAR颜色
COLORREF m_clrUp ;
COLORREF m_clrDown ;
public: // BAR方法
// BAR 颜色
// clrUp -------- 顶部颜色
// clrDown -------- 底部颜色
// bfRfastness -------- 红色分量是否固定不变 false ---- 渐变
// bfGfastness -------- 红色分量是否固定不变 false ---- 渐变
// bfBfastness -------- 红色分量是否固定不变 false ---- 渐变
void SetBarColor ( COLORREF clrUp , COLORREF clrDown , bool bfRfastness = false
, bool bfGfastness = false , bool bfBfastness = false ) ;
// 设置数据
void SetData ( float fData ) ;
private: // LINE属性
// 曲线颜色
COLORREF m_clrLinePen ; // RGB(0,255,0)
// 曲线宽度
int nLineWidth ;
public: // LINE方法
// 曲线颜色
void SetLineColorWidth ( COLORREF clrLine = RGB ( 0 , 255 , 0 ) , int nWidth = 1
)
{
nLineWidth = nWidth ;
m_clrLinePen = clrLine ;
}
void SetLineColor ( COLORREF clrLine = RGB ( 0 , 255 , 0 ) ) { m_clrLinePen =
clrLine ; }
void SetLineWidth ( int nWidth = 1 ) { nLineWidth = nWidth ; }
const COLORREF GetLineColor () { return m_clrLinePen ; }
const int GetLineWidth () { return nLineWidth ; }
public:
DECLARE_MESSAGE_MAP()
afx_msg void OnTimer(UINT nIDEvent);
protected:
virtual void PreSubclassWindow();
public:
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
};
//////////////////////////////////// end ////////////////////////////////////
标签:
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号