控制 BCG 库中历史图表中的显示范围

Posted

技术标签:

【中文标题】控制 BCG 库中历史图表中的显示范围【英文标题】:Controlling the display range in a history' chart in the BCG library 【发布时间】:2014-11-06 00:27:19 【问题描述】:

我是第一次向 *** 提问。 如果我对你无礼,请告诉我。我会修好它。 谢谢。

问...

在 BCG 库中。使用 Visual Studio 2012、MFC。

我想控制历史图表中数据范围的显示。

当我调用下面的函数时。

CBCGPChartAxis::SetFixedMaximumDisplayValue CBCGPChartAxis::SetFixedMinimumDisplayValue CBCGPChartAxis::SetScrollRange CBCGPChartAxis::EnableScroll CBCGPChartAxis::EnableZoom CBCGPChartAxis::SetAlwaysShowScrollBar

图表只工作过一次。 然后,图表似乎自动调用了 CBCGPChartAxis::SetAutoDisplayRange()。

换句话说。我不想通过图表自动调用 CBCGPChartAxis::SetAutoDisplayRange()。

控制历史图表中的显示范围。

【问题讨论】:

【参考方案1】:

据我在源代码中看到的,这个函数是从多个地方调用的。也许阻止此函数的最简单方法是调用 CBCGPChartSeries::ReplaceAxis 并用您的实现替换自动创建的轴,这可能会忽略 SetAutoDisplayRange。

如果这没有帮助或作为进一步调查的方法:

设置断点并查看调用堆栈以查看谁调用了此函数以及何时调用了此函数。再说一遍:据我了解源代码,当图表发生变化时,该函数会自动调用。

【讨论】:

【参考方案2】:
CBCGPChartAxis* pXAxis=***;
pXAxis->EnableScroll();
pXAxis->EnableZoom();
pXAxis->ShowScrollBar();
pXAxis->SetFixedUnitCount(20,1);

20 表示每个可见范围内的 V 网格线的总数,1 表示每个网格的单个范围内有一个点。 可能是你想要的。

【讨论】:

以上是关于控制 BCG 库中历史图表中的显示范围的主要内容,如果未能解决你的问题,请参考以下文章

如何为数据系列中的数据范围命名?

VBA图表范围减去

BCG库的一个bug

如何在反应谷歌图表中根据散点图中的某个范围值显示点颜色

Moment.js - 显示选定范围内关于用户时区的历史数据

报表类相关测试范围总结