编写MFC下的单文档程序,绘制矩形,矩形坐上角、右下角坐标由对话框输入。

内容包括题目、思路、程序实现过程、程序实现的关键代码、运行时的输入输出情况及截图、总结。... 内容包括题目、思路、程序实现过程、程序实现的关键代码、运行时的输入输出情况及截图、总结。 展开
 我来答
花花浪客
推荐于2016-09-16 · TA获得超过2069个赞
知道小有建树答主
回答量:792
采纳率:100%
帮助的人:714万
展开全部

题目: 编写MFC下的单文档程序,绘制矩形,矩形坐上角、右下角坐标由对话框输入。
思路:使用CDC的Draw3dRect函数可以直接在视图上绘制矩形,只是这个函数需要的是左上角坐标与矩形的长宽,所以我们需要通过左上角坐标与右下角坐标转换计算出矩形长宽。
实现过程:
1. 创建名为drawrect的单文档视图程序
2. 为CDrawrectView类添加成员变量来存放左上角坐标与右下角坐标
3. 在CDrawrectView类的OnDraw函数中根据左上角坐标与右下角坐标绘制矩形
4. 添加对话框资源用来输入左上角坐标与右下角坐标并为这个对话框添加相应的类与成员变量
5. 让CDrawrectView响应OnFileNew函数,在这个函数中弹出对话框要求用户输入左上角坐标与右下角坐标,把用户输入保存到CDrawrectView的相应成员变量中并强迫视图重绘。
关键代码:
void CDrawrectView::OnDraw(CDC* pDC)
{
 CDrawrectDoc* pDoc = GetDocument();
 ASSERT_VALID(pDoc);
 
 pDC->Draw3dRect(m_nX1, m_nY1, m_nX2 - m_nX1, m_nY2 - m_nY1, RGB(0, 0, 0), RGB(0, 0, 0));
}

void CDrawrectView::OnFileNew()
{
 CDlgPosition dlgPosition;
 if (dlgPosition.DoModal() == IDOK)
 {
  m_nX1 = dlgPosition.m_nX1;
  m_nY1 = dlgPosition.m_nY1;
  m_nX2 = dlgPosition.m_nX2;
  m_nY2 = dlgPosition.m_nY2;
 }

 Invalidate();         //Force view redraw
}

运行结果:

完整代码见附件

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式