基于Microsoft Visual Studio,创建一个基于MFC对话框的应用程序,请给出在***Dlg.OnPaint()函数中编写的完整C++编码,以实现功能:程序启动后,在界面上从左至右依次用不同颜色和宽度的线条绘制矩形、圆形和三角形,并能通过按钮调用绘制功能。 (如使用注释,请使用中文注释)
时间: 2024-03-07 13:53:21 浏览: 86
好的,以下是您所需的完整C++编码:
在头文件中声明以下成员变量:
```c++
CButton m_btnDraw; // 按钮控件
CRect m_rect; // 矩形框
CPen m_penRect; // 矩形画笔
CPen m_penCircle; // 圆形画笔
CPen m_penTriangle; // 三角形画笔
```
在OnInitDialog()函数中进行初始化:
```c++
BOOL CMyDialog::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 初始化按钮控件
m_btnDraw.SubclassDlgItem(IDC_BUTTON_DRAW, this);
// 初始化矩形框
m_rect = CRect(50, 50, 150, 150);
// 初始化画笔
m_penRect.CreatePen(PS_SOLID, 3, RGB(255, 0, 0)); // 红色粗线
m_penCircle.CreatePen(PS_SOLID, 2, RGB(0, 255, 0)); // 绿色细线
m_penTriangle.CreatePen(PS_SOLID, 4, RGB(0, 0, 255)); // 蓝色粗线
return TRUE;
}
```
在OnPaint()函数中绘制矩形、圆形和三角形:
```c++
void CMyDialog::OnPaint()
{
CPaintDC dc(this);
// 绘制矩形
CPen* pOldPen = dc.SelectObject(&m_penRect);
dc.Rectangle(m_rect);
dc.SelectObject(pOldPen);
// 绘制圆形
pOldPen = dc.SelectObject(&m_penCircle);
dc.Ellipse(200, 50, 300, 150);
dc.SelectObject(pOldPen);
// 绘制三角形
pOldPen = dc.SelectObject(&m_penTriangle);
POINT points[] = { {350, 50}, {400, 150}, {300, 150} };
dc.Polygon(points, 3);
dc.SelectObject(pOldPen);
}
```
最后,在按钮的Click事件中调用绘制函数:
```c++
void CMyDialog::OnBnClickedButtonDraw()
{
Invalidate(); // 重绘窗口
}
```
这样,程序启动后,在界面上从左至右依次用不同颜色和宽度的线条绘制矩形、圆形和三角形,并能通过按钮调用绘制功能。
阅读全文