⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 brick.cpp

📁 visual c++数字图像与图形处理中的光盘内容
💻 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 + -