我正在用 MFC 做一个小型绘图工具。
首先,我创建一个对话框,从四种形状(矩形、直线、圆形、椭圆)中选择一种形状,然后绘制它。
其次,我创建了一个无模式对话框来显示形状的坐标(startpoint.x
, startpoint.y
, width
, height
)。
坐标对话框如下:
最后,我创建了一个对话框来选择其他参数。单击确定按钮时,形状的坐标将传递给void CPropertyDlg::OnBnClickedOk()
。但是我发现所有的坐标都是零,是因为对话框和坐标是即时的吗?关闭对话框后,坐标会自动设置为零吗?
获取坐标的代码DrawToolView.cpp
如下:
void CDrawToolView::OnLButtonUp(UINT nFlags, CPoint point)
{
m_startRect=FALSE;
::ClipCursor(NULL);
CClientDC dc(this);
dc.SelectStockObject(NULL_BRUSH);
dc.Rectangle(CRect(m_startPoint,m_OldPoint)); // draw rectangle
dc.Rectangle(CRect(m_startPoint,point));
}
将坐标传递给的代码void CPropertyDlg::OnBnClickedOk()
如下:
void CPropertyDlg::OnBnClickedOk()
{
UpdateData();
CDrawToolView coordinate;
origin_x = coordinate.m_startPoint.x;
origin_y = coordinate.m_startPoint.y;
width = coordinate.m_OldPoint.x-coordinate.m_startPoint.x;
height = coordinate.m_OldPoint.y-coordinate.m_startPoint.y;;
OnOK();
}
有人可以帮我吗?