mfc在ondraw函数中增加画一个海绵宝宝的代码
时间: 2024-03-25 22:38:28 浏览: 117
好的,下面是一个在MFC的OnDraw函数中画一个海绵宝宝的代码示例:
```cpp
void CMyView::OnDraw(CDC* pDC)
{
// 获取视图的客户区大小
CRect rect;
GetClientRect(rect);
// 绘制天空背景
pDC->FillSolidRect(rect, RGB(54, 174, 255));
// 绘制海绵宝宝的身体
CRect rectBody(rect.Width() / 2 - 100, rect.Height() / 2 - 100, rect.Width() / 2 + 100, rect.Height() / 2 + 100);
pDC->SelectStockObject(YELLOW_BRUSH);
pDC->Ellipse(rectBody);
// 绘制海绵宝宝的眼睛
CRect rectLeftEye(rect.Width() / 2 - 60, rect.Height() / 2 - 60, rect.Width() / 2 - 20, rect.Height() / 2 - 20);
CRect rectRightEye(rect.Width() / 2 + 20, rect.Height() / 2 - 60, rect.Width() / 2 + 60, rect.Height() / 2 - 20);
pDC->SelectStockObject(WHITE_BRUSH);
pDC->Ellipse(rectLeftEye);
pDC->Ellipse(rectRightEye);
pDC->SelectStockObject(BLACK_BRUSH);
CRect rectPupil(rectLeftEye.left + 10, rectLeftEye.top + 10, rectLeftEye.right - 10, rectLeftEye.bottom - 10);
pDC->Ellipse(rectPupil);
rectPupil.OffsetRect(rectRightEye.left - rectLeftEye.left, 0);
pDC->Ellipse(rectPupil);
// 绘制海绵宝宝的嘴巴
CPoint ptMouthStart(rect.Width() / 2 - 80, rect.Height() / 2 + 20);
CPoint ptMouthEnd(rect.Width() / 2 + 80, rect.Height() / 2 + 20);
pDC->SelectStockObject(NULL_PEN);
pDC->SelectStockObject(BLACK_BRUSH);
pDC->BeginPath();
pDC->MoveTo(ptMouthStart);
pDC->ArcTo(rectBody, ptMouthStart, ptMouthEnd);
pDC->EndPath();
pDC->StrokeAndFillPath();
}
```
这段代码实现了在视图中画一个海绵宝宝的功能,包括天空背景、海绵宝宝的身体、眼睛和嘴巴等元素。你可以在自己的MFC应用程序中的OnDraw函数中添加这段代码,然后运行程序,就可以看到画出来的海绵宝宝了。
阅读全文