如何获取鼠标点击所在点的坐标?

chenthree723 chenthree723 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
具体情况是我要利用ONLBUTTONDOWN和ONMOUSEMOVE画一条折线,并计算这条折线的函数表达式。所以在点击鼠标的时候,需要记录每一个点击左键时候的点的坐标,放进一个动态数组里。下面是我的代码,哪个地方出错了?


void CWaveTestView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

// CString sMousePos;
// sMousePos.Format("x=%d,y=%d",point.x,point.y);
// GetParent()->GetDescendantWindow(AFX_IDW_STATUS_BAR)->SetWindowText(sMousePos);

if (m_OnDrawLine == TRUE)
{
int nPointCount = 0;

CPoint *pDrawPoint = new CPoint[];

if(nFlags==MK_LBUTTON) //按下左键
{
CPen pen,cpen;
pen.CreatePen(PS_SOLID,4,RGB(0,0,0));
cpen.CreatePen(PS_SOLID,2,RGB(0,0,255));

m_PtOld = point;//鼠标当前位置相对下一次移动的位置是“旧位置”

CClientDC dc(this);
dc.SetROP2(R2_NOT);
dc.SelectObject(&pen);
dc.MoveTo(m_PtStart);
dc.LineTo(m_PtOld);
dc.MoveTo(m_PtStart);
dc.LineTo(point);

nPointCount++;
}

for (int i=0;i<nPointCount;i++)
{
pDrawPoint[i] = point;
}

}



CView::OnMouseMove(nFlags, point);
}

另外,上面有段被注释掉的代码,是想显示鼠标当前位置的坐标,但是在运行的时候,会提示“UNHANDLED EXCEPTION IN xxxx.exe access violation”,请帮忙一并解决,我新人,分不多。谢谢!
...全文
评论 7
收藏 已收藏
分享
返回顶部
chenthree723
VC/MFC 16,550 成员 421,606 内容