MFCで小さな描画ツールをやっています。
四角形、線、円、楕円、点の 5 つの形状を定義します。intm_drawType
は、5 つの形状を切り替えるために使用されます。
コードは次のとおりです。
void CDrawToolView::OnLButtonDown(UINT nFlags, CPoint point)
{
m_startRect=TRUE;
m_startPoint=point;
m_OldPoint=point;
::SetCursor(m_HCross);
CView::OnLButtonDown(nFlags, point);
}
void CDrawToolView::OnMouseMove(UINT nFlags, CPoint point)
{
CClientDC dc(this);
dc.SetROP2(R2_NOT);
dc.SetROP2(R2_NOT);
dc.SelectStockObject(NULL_BRUSH);
if(TRUE==m_startRect)
{
switch(m_drawType)
{
case 1://Rectangle
::SetCursor(m_HCross);
dc.Rectangle(CRect(m_startPoint,m_OldPoint));
dc.Rectangle(CRect(m_startPoint,point));
m_OldPoint=point;
break;
case 2: //Line
::SetCursor(m_HCross);
dc.MoveTo(m_startPoint);
dc.LineTo(m_OldPoint);
dc.MoveTo(m_startPoint);
dc.LineTo(point);
m_OldPoint=point;
break;
.
.
.
}
}
CView::OnMouseMove(nFlags, point);
}
void CDrawToolView::OnLButtonUp(UINT nFlags, CPoint point)
{
m_startRect=FALSE;
::ClipCursor(NULL);
CClientDC dc(this);
dc.SelectStockObject(NULL_BRUSH);
switch(m_drawType)
{
case 1: //Retangle
dc.Rectangle(CRect(m_startPoint,m_OldPoint));
dc.Rectangle(CRect(m_startPoint,point));
break;
case 2: //Line
dc.MoveTo(m_startPoint);
dc.LineTo(m_OldPoint);
dc.MoveTo(m_startPoint);
dc.LineTo(point);
break;
.
.
.
}
CView::OnLButtonUp(nFlags, point);
}
void CDrawToolView::OnEditShape() // when click menu-edit-shape a dialog is pop up
{
CShapeDlg dlg;
dlg.DoModal();
}
以下のようなポップアップダイアログ:
5 つのボタンのダイアログを作成しました。私の問題は、ボタンとこれらの 5 つの図形をリンクする方法がわからないことです。誰かが私を助けることができますか?