mfc在ondraw函数中增加画一个房子大代码
时间: 2024-03-25 16:38:24 浏览: 154
视图类中成员函数OnDraw-MFC应用程序框架
好的,下面是一个在MFC的OnDraw函数中画一个房子的代码示例:
```cpp
void CMyView::OnDraw(CDC* pDC)
{
// 获取视图的客户区大小
CRect rect;
GetClientRect(rect);
// 绘制天空背景
pDC->FillSolidRect(rect, RGB(135, 206, 250));
// 绘制草地背景
CRect rectGrass(rect.left, rect.bottom - rect.Height() / 3, rect.right, rect.bottom);
pDC->FillSolidRect(rectGrass, RGB(124, 252, 0));
// 绘制房子
CPoint ptRoofTop(rect.Width() / 2, rect.Height() / 2 - 100);
CPoint ptRoofLeft(rect.Width() / 2 - 100, rect.Height() / 2);
CPoint ptRoofRight(rect.Width() / 2 + 100, rect.Height() / 2);
CPoint ptHouseLeft(rect.Width() / 2 - 100, rect.Height() / 2 + 100);
CPoint ptHouseRight(rect.Width() / 2 + 100, rect.Height() / 2 + 100);
pDC->SelectStockObject(BLACK_BRUSH);
pDC->BeginPath();
pDC->MoveTo(ptRoofTop);
pDC->LineTo(ptRoofLeft);
pDC->LineTo(ptHouseLeft);
pDC->LineTo(ptHouseRight);
pDC->LineTo(ptRoofRight);
pDC->LineTo(ptRoofTop);
pDC->EndPath();
pDC->StrokeAndFillPath();
// 绘制门
CRect rectDoor(rect.Width() / 2 - 20, rect.Height() / 2 + 80, rect.Width() / 2 + 20, rect.Height() / 2 + 150);
pDC->SelectStockObject(WHITE_BRUSH);
pDC->Rectangle(rectDoor);
// 绘制窗户
CRect rectWindow(rect.Width() / 2 - 80, rect.Height() / 2 + 60, rect.Width() / 2 - 20, rect.Height() / 2 + 100);
pDC->Rectangle(rectWindow);
rectWindow.OffsetRect(100, 0);
pDC->Rectangle(rectWindow);
}
```
这段代码实现了在视图中画一个房子的功能,包括天空背景、草地背景、房子、门和窗户等元素。你可以在自己的MFC应用程序中的OnDraw函数中添加这段代码,然后运行程序,就可以看到画出来的房子了。
阅读全文