#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
MFC位绘图--如何将图数组显示
最新推荐文章于 2024-12-08 11:19:06 发布
本文介绍如何在MFC中进行位图绘制,通过类成员变量`space`存储自定义调色板和SPACEM*SPACEM大小的位图空间。`SetSpace`方法允许传递自定义位图数组到类实例,而`DrawSpace`方法则负责显示这些位图。此外,利用pDC(设备上下文)可以实现静态控件的拉伸变换,通过调整`StretchBlt`参数控制拉伸效果。

最低0.47元/天 解锁文章
2789

被折叠的 条评论
为什么被折叠?



