一、基本思路
1.地图由3*4张图块组成,列方向4块,行方向3块,这里有3种不同颜色的图块;
2.将3张不同的图块分别用0、1、2表示,建立地图数组,8行8列,用0、1、2这三个数进行初始化
3.建立空白位图存到mdc,循环整个地图数组,从第一个开始,根据数组值(0或1或2)取出对应的地图,存到内存bufdc中
4.根据索引值计算行列编号,计算贴图坐标,并一张一张的贴到mdc中,mdc最后再贴到hdc;
公式:列编号=索引值/每一列图块的个数
行编号=索引值%每一列图块的个数
二、代码如下
#include "stdafx.h"
#include <stdio.h>
HINSTANCE hInst;
HBITMAP fullmap;//bitmap handle,存储初始化函数中完成的地图
HDC mdc; //内存DC句柄mdc
const int rows = 8,cols = 8;
ATOM MyRegisterClass(HINSTANCE hInstance);
BOOL InitInstance(HINSTANCE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
void MyPaint(HDC hdc);
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)