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, которые можно найти в интернете, вместо этого древнего элемента управления.