📄 brick.cpp
字号:
/////////////////////////////////////////////////////////////////////////////////
//
// Brick.cpp: implementation of the CBrick class.
//
////////////////////////////////////////////////////////////////////////////////
// 版权所有(2002)
// Copyright(2002)
// 编写者: 向世明
// Author: Xiang Shiming
#include "stdafx.h"
#include "Brick.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CBrick::CBrick()
{
m_byRed = 160;
m_byGreen = 24;
m_byBlue = 10;
}
CBrick::~CBrick(){}
//设置颜色
void CBrick::SetColor(BYTE byRed, BYTE byGreen, BYTE byBlue)
{
m_byRed = byRed;
m_byGreen = byGreen;
m_byBlue = byBlue;
}
//绘制整块砖
//(x,y)-----------------左上角坐标
//nWidth, nHeight-------宽度和高度
void CBrick::Whole(CDC* pDC, int x, int y , int nWidth, int nHeight)
{
//绘制内部
CBrush brush(RGB(m_byRed, m_byGreen, m_byBlue));
CRect rect(x + 1, y + 1, x + nWidth - 2, y + nHeight - 2);
pDC->FillRect(&rect,&brush);
brush.DeleteObject();
//边界
CPen whitePen(PS_SOLID, 1, RGB(255, 255, 255));
CPen* pOldPen = pDC->SelectObject(&whitePen);
pDC->MoveTo(x + nWidth - 1, y);
pDC->LineTo(x, y);
pDC->LineTo(x, y + nHeight);
pDC->SelectObject(pOldPen);
whitePen.DeleteObject();
CPen grayPen(PS_SOLID, 1, RGB(128, 128, 128));
CPen* pOldPen_1 = pDC->SelectObject(&grayPen);
pDC->MoveTo(x + 1, y + nHeight - 2);
pDC->LineTo(x + nWidth - 2, y + nHeight - 2);
pDC->LineTo(x + nWidth - 2, y);
pDC->SelectObject(pOldPen_1);
grayPen.DeleteObject();
CPen blackPen(PS_SOLID, 1, RGB(0, 0, 0));
CPen* pOldPen_2 = pDC->SelectObject(&blackPen);
pDC->MoveTo(x, y + nHeight - 1);
pDC->LineTo(x + nWidth - 1, y + nHeight - 1);
pDC->LineTo(x + nWidth - 1, y - 1);
pDC->SelectObject(pOldPen_2);
blackPen.DeleteObject();
}
//绘制左边被切割的砖
//(x,y)-----------------左上角坐标
//nWidth, nHeight-------宽度和高度
void CBrick::LeftCutted(CDC* pDC, int x, int y , int nWidth, int nHeight)
{
//绘制内部
CBrush brush(RGB(m_byRed, m_byGreen, m_byBlue));
CRect rect(x, y, x + nWidth - 2, y + nHeight - 2);
pDC->FillRect(&rect,&brush);
brush.DeleteObject();
//边界
CPen whitePen(PS_SOLID, 1, RGB(255, 255, 255));
CPen* pOldPen = pDC->SelectObject(&whitePen);
pDC->MoveTo(x, y);
pDC->LineTo(x + nWidth, y);
pDC->SelectObject(pOldPen);
whitePen.DeleteObject();
CPen grayPen(PS_SOLID, 1, RGB(128, 128, 128));
CPen* pOldPen_1 = pDC->SelectObject(&grayPen);
pDC->MoveTo(x, y + nHeight - 2);
pDC->LineTo(x + nWidth - 2, y + nHeight - 2);
pDC->LineTo(x + nWidth - 2, y);
pDC->SelectObject(pOldPen_1);
grayPen.DeleteObject();
CPen blackPen(PS_SOLID, 1, RGB(0, 0, 0));
CPen* pOldPen_2 = pDC->SelectObject(&blackPen);
pDC->MoveTo(x, y + nHeight - 1);
pDC->LineTo(x + nWidth - 1, y + nHeight - 1);
pDC->LineTo(x + nWidth - 1, y - 1);
pDC->SelectObject(pOldPen_2);
blackPen.DeleteObject();
}
//绘制右边被切割的砖
//(x,y)-----------------左上角坐标
//nWidth, nHeight-------宽度和高度
void CBrick::RightCutted(CDC* pDC, int x, int y , int nWidth, int nHeight)
{
//绘制内部
CBrush brush(RGB(m_byRed, m_byGreen, m_byBlue));
CRect rect(x + 1, y + 1, x + nWidth - 1, y + nHeight - 1);
pDC->FillRect(&rect,&brush);
brush.DeleteObject();
//边界
CPen whitePen(PS_SOLID, 1, RGB(255, 255, 255));
CPen* pOldPen = pDC->SelectObject(&whitePen);
pDC->MoveTo(x + nWidth - 1, y);
pDC->LineTo(x, y);
pDC->LineTo(x, y + nHeight);
pDC->SelectObject(pOldPen);
whitePen.DeleteObject();
CPen grayPen(PS_SOLID, 1, RGB(128, 128, 128));
CPen* pOldPen_1 = pDC->SelectObject(&grayPen);
pDC->MoveTo(x + 1, y + nHeight - 2);
pDC->LineTo(x + nWidth - 2, y + nHeight - 2);
pDC->SelectObject(pOldPen_1);
grayPen.DeleteObject();
CPen blackPen(PS_SOLID, 1, RGB(0, 0, 0));
CPen* pOldPen_2 = pDC->SelectObject(&blackPen);
pDC->MoveTo(x, y + nHeight - 1);
pDC->LineTo(x + nWidth - 1, y + nHeight - 1);
pDC->SelectObject(pOldPen_2);
blackPen.DeleteObject();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -