如题:
我的代码如下:
void CDrawLineDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
m_nori = point;//m_nori 为Cpoint 类型
CDialogEx::OnLButtonDown(nFlags, point);
}void CDrawLineDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
CDC *pdc;
pdc=GetDlgItem(IDC_E_DROWLINE)->GetDC();
pdc->MoveTo(m_nori);
pdc->LineTo(point);
ReleaseDC(pdc);
CDialogEx::OnLButtonUp(nFlags, point);
}这段代码,不能在编辑框 绘图,可以在 整个对话框中画图成功。为什么啊?请改正!!

解决方案 »

  1.   

    主要是鼠标的位置的问题,m_nori 记录下来的是相对于对话框的鼠标位置,而用pdc->MoveTo(m_nori);等作图时却是以编辑框为参照的。
      

  2.   

    鼠标移动到编辑框中,鼠标消息将会传递给编辑框,你的void CDrawLineDlg::OnLButtonDown函数不会执行。
      

  3.   

    顶3楼。。你那个m_nori 是空值。。因此画不了
      

  4.   

    解决方法:
    你重载CEdit里面的OnLButtonDown,记录在m_mori一个变量里面,然后再写个方法导出这个CPoint
    void CEditX::OnLButtonDown(UINT nFlags, CPoint point)
    {
    m_nori = point;//m_nori 为Cpoint 类型
    CDialogEx::OnLButtonDown(nFlags, point);
    }void GetNori()
    {
       return m_nori;
    }