MFC位绘图--如何将图数组显示

本文介绍如何在MFC中进行位图绘制,通过类成员变量`space`存储自定义调色板和SPACEM*SPACEM大小的位图空间。`SetSpace`方法允许传递自定义位图数组到类实例,而`DrawSpace`方法则负责显示这些位图。此外,利用pDC(设备上下文)可以实现静态控件的拉伸变换,通过调整`StretchBlt`参数控制拉伸效果。
#define SPACEM 100

class CSpace
{
public:
	int left;  //空间左上方绝对坐标x
	int top;  //空间左上方绝对坐标y
	int width;  //空间宽度
	int height;  //空间高度
	unsigned char space[SPACEM][SPACEM];  //生成2维度空间,0表示真空,1表示墙壁,2表示主角,3表示食物
public:
	CSpace(int ileft,int itop);
	~CSpace();
	void SetSpace(unsigned char in[SPACEM][SPACEM]);
	void DrawSpace(CDC *pDC);  
private:
protected:
};

CSpace::CSpace(int ileft,int itop)
{
	left=ileft;
	top=itop;
	width=SPACEM;
	height=SPACEM;
	int i,j;
	for(i=0;i<SPACEM;i++){
		for(j=0;j<SPACEM;j++)
			space[i][j]=0;}
}

CSpace::~CSpace()
{
}

void CSpace::SetSpace(unsigned char in[SPACEM][SPACEM])
{
	int i,j;
	for(i=0;i<SPACEM;i++)
		for(j=0;j<SPACEM;j++)
			space[i][j]=in[i][j];
}

void CSpace::DrawSpace(CDC *pDC)
{
	int i,j;
	CDC memDC;
	memDC.CreateCompatibleDC(pDC);

	CBitmap bmp;
	bmp.CreateCompatibleBitmap(pDC,500,500);
	memDC.SelectObject(&bmp);

	BITMAPINFO bmpInfo;
	bmpInfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
	bmpInf
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值