steffi123 Ответов: 2

В MFC MS chart control как увидеть значения точек диаграммы, когда мышь находится на точках?


Привет,

В MFC MS Chart Control как увидеть значения точек диаграммы, когда мышь находится на точках?

Спасибо.

Что я уже пробовал:

В ссылке c# - просмотр значений точек диаграммы при наведении мыши на точки - переполнение стека[^], код c# дан для достижения моего требования, но я не знаю, что такое эквивалентный код в c++ для приведенного ниже кода c#.
Диаграмма 1.HitTest(pos.X, pos.Y, false,ChartElementType.DataPoint);

2 Ответов

Рейтинг:
2

Jochen Arndt

В любом CWnd класса можно переопределить CWnd::OnMouseMove в вашем производном классе:

// In CMyClass header file:
//afx_msg void OnMouseMove(UINT nFlags,  CPoint point);

// In CMyClass source file
BEGIN_MESSAGE_MAP(CMyClass, CBaseClass)
    ON_WM_MOUSEMOVE()
END_MESSAGE_MAP()

void CMyClass::OnMouseMove(UINT nFlags, CPoint point)
{
    // Note that this called repeatedly so that execution should
    //  not consume too much time.

    // Add your code here.
    // Check if the CPoint (relative to the upper-left corner if the CWnd)
    //  is on the chart.
    // If so, calculate the value using the proerties of the chart and display them.

    CBaseClass::OnMouseMove(nFlags, point);
}

Если это не работает с элементом управления MS Chart (я никогда им не пользовался), вы можете захватить мышь в Родительском окне, в котором находится элемент управления chart (см. SetCapture() по вышеуказанному CWnd ссылка). Обратите внимание, что при этом отключаются все функции мыши элемента управления.

В любом случае, я предлагаю использовать одну из многих реализаций управления диаграммами MFC, которые можно найти в интернете, вместо этого древнего элемента управления.


Рейтинг:
0

User 7429338

Если вы проверите этот метод на MSDN, вы можете нажать на вкладку C++, чтобы увидеть эквивалент на этом языке:

Диаграмма.Метод HitTest (Int32, Int32, Boolean, ChartElementType[]) (System.Окна.Формы.DataVisualization.Картирование)[^]


steffi123

В MFC элемент управления диаграммой не имеет функции HitTest.