// TODO: 在此处为本机数据添加绘制代码
CDC MemDC;//显示设备对象
CBitmap MemBitmap;//位图对象
//获取客户区高度和宽度
CRect clientRect;
GetClientRect(&clientRect);
nWidth = clientRect.right - clientRect.left;
nHeight = clientRect.bottom - clientRect.top;
//建立与屏幕显示兼容的内存显示设备
MemDC.CreateCompatibleDC(NULL);
//建立与屏幕显示兼容的位图
MemBitmap.CreateCompatibleBitmap(pDC,nWidth,nHeight);
//将位图选入内存设备
CBitmap *pOldBit = MemDC.SelectObject(&MemBitmap);
//用背景色将位图清楚干净
//MemDC.FillSolidRect(0,0,nWidth,nHeight,RGB(0,0,255));
//在内存中绘图
CBrush NewBrush(RGB(100, 100, 100)), NewBrush1(RGB(34,139,34));
MemDC.Rectangle(0,0,nWidth,nHeight);
//打印游戏区域
CBrush *pOldBrush;
pOldBrush = MemDC.SelectObject(&NewBrush1);
MemDC.Rectangle(rect);
NewBrush1.DeleteObject();
//打印蛇
pOldBrush = MemDC.SelectObject(&NewBrush);
for (Snake* p = pHead; p != NULL; p = p->next)
{
MemDC.Rectangle(p->x, p->y, p->x + width, p->y + width);
}
//打印食物
if (IsNew == 1)
MemDC.Rectangle(food.x, food.y, food.x + width, food.y + width);
NewBrush.DeleteObject();
//打印分数
CString str;
str.Format(_T("分数为%d"), score);
MemDC.TextOutW(rect.right + 30, cWidth / 2,str);
//更改状态
IsChange = 1;
//将内存中的图拷贝到屏幕上进行显示
pDC->BitBlt(0, 0, nWidth, nHeight, &MemDC, 0, 0, SRCCOPY);
// 绘图完成后的清理
MemBitmap.DeleteObject();
MemDC.DeleteDC();