MFC CChartCtrl编程

重点:创建CChartCtrl控件有2种方式

1、直接创建CChartCtrl

2、窗体上添加Custom Control(切记一定不能是Static Text或者Picture Control,否则无法响应鼠标消息),然后根据ID关联CChartCtrl控件,初始化代码如下:

复制代码
void InitChartCtrl(CChartCtrl& chartCtrl, TChartString axisXLabel, TChartString axisYLabel, TChartString titleLabel)
{
    //去掉边框
    //chartCtrl.ModifyStyleEx(WS_EX_CLIENTEDGE, NULL, SWP_DRAWFRAME);
    //chartCtrl.ModifyStyle(WS_BORDER, 0);
    chartCtrl.SetEdgeType(EDGE_ETCHED);

    chartCtrl.SetPanEnabled(TRUE);
    chartCtrl.SetZoomEnabled(TRUE);

    //创建标准轴底部轴
    CChartStandardAxis* pAxisX = chartCtrl.CreateStandardAxis(CChartCtrl::BottomAxis);
    //pAxisX->SetAutomatic(true);//设置自动缩放
    pAxisX->SetMinMax(0, 1024);//设置显示范围    
    pAxisX->GetGrid()->SetVisible(true);

    //设置标题
    pAxisX->GetLabel()->SetText(axisXLabel);
    pAxisX->GetLabel()->SetColor(RGB(0, 0, 0));
    pAxisX->GetLabel()->SetFont(140, _T("微软雅黑"));

    //创建标准轴左轴
    CChartAxis* pAxisY = chartCtrl.CreateStandardAxis(CChartCtrl::LeftAxis);
    //pAxisY->SetAutomatic(true);//设置Y轴为可缩放
    pAxisY->SetMinMax(10.0, 80.0);
    pAxisY->GetGrid()->SetVisible(true);

    //设置标题
    pAxisY->GetLabel()->SetText(axisYLabel);
    pAxisY->GetLabel()->SetColor(RGB(0, 0, 0));
    pAxisY->GetLabel()->SetFont(96, _T("微软雅黑"));

    //设置背景颜色
    chartCtrl.SetBackGradient(RGB(255, 255, 255), RGB(255, 255, 255), gtVertical);

    //设置标题颜色
    chartCtrl.GetTitle()->SetColor(RGB(0, 0, 0));

    //设置标题字体大小
    chartCtrl.GetTitle()->SetFont(96, _T("微软雅黑"));

    //设置图标标题
    chartCtrl.GetTitle()->AddString(titleLabel);

    CChartLineSerie* pLineSerie = (CChartLineSerie*)chartCtrl.CreateLineSerie();
    pLineSerie->SetColor(RGB(0, 255, 0));
    pLineSerie->SetWidth(1);
    pLineSerie->SetSmooth(true);
}
相关推荐
wuminyu1 小时前
LockStack在虚拟线程Mount和Unmount拷贝过程剖析
java·linux·c语言·jvm·c++
知识分享小能手2 小时前
C++ 学习教程,从入门到精通,string类和标准模板库 — 完整知识点详解(16)
开发语言·c++·学习
无忧.芙桃2 小时前
位图妙用:512MB 实现 40 亿整数的存在性查询
c语言·c++·面试·哈希算法
ShineWinsu2 小时前
对于Redis:Steam、Geospatial、Hyperloglog、Bitmap、Bitfield类型的解析
数据库·c++·redis·分布式·缓存·面试·zset
朝朝辞暮i2 小时前
C++ 第 31C 课:Subscriber 到底是什么
开发语言·c++·算法
殷色玫瑰3 小时前
C++ string类详解:常用接口、字符串操作与模拟实现
java·linux·c语言·开发语言·数据结构·c++
李游Leo3 小时前
HarmonyOS 7 + Spatial Recon Kit-C++:3DGS 高斯参数的非有限值隔离与可渲染性门禁【鸿蒙心迹】
开发语言·c++·3d·harmonyos
jimy14 小时前
基类没有虚析构函数,基类指针删除派生类对象,行为是未定义的
开发语言·c++
xlq223224 小时前
全面复习2
c++
无名猿4 小时前
移动构造与移动赋值:把资源偷过来
c++·性能优化·内存管理·现代c++·语法基础