MFCで小さな描画ツールをやっています。
まず、4つの形(長方形、線、円、楕円)から1つの形を選択して描画するダイアログを作成します。
次に、形状 ( startpoint.x
、startpoint.y
、width
、height
) の座標を表示するモードレス ダイアログを作成します。
以下のようにダイアログを調整します。
最後に、他のパラメーターを選択するためのダイアログを作成します。OKボタンをクリックすると、形状の座標が に渡され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();
}
誰かが私を助けることができますか?