我对以下示例有疑问:
当我点击屏幕截图上标有' 1' 的地方时,我可以通过MouseClick事件以非常简单的方式获取像素位置:
private: System::Void chart1_MouseClick(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
Point chartLocationOnForm = chart1->FindForm()->PointToClient(chart1->Parent->PointToScreen(chart1->Location));
cursorPosX = e->X - chartLocationOnForm.X;
cursorPosY = e->Y - chartLocationOnForm.Y;
}
在打印出这些值后,我得到了以像素为单位的位置,标记为' 2' 的位置等于(0,0)。
点击' 1'中的点后我想得到什么?是
X:40
Y:178.5 ,
这是我图表中的坐标。有没有文明的方法(我的意思是考虑填充,图表的边距和边框以及自己计算这些坐标)?
我的一个想法是创建某种不可见的CursorX和CursorY并使用它的方法,但它似乎更像是解决简单问题的一种奇特的方式,而不是真正的,直的前进解决方案我是对的还是真的是我应该解决问题的方式?