给你举个例子:
比如有一张很大的图,就10000*10000的吧
你的窗口大小1024*768
首先:首先建立一个内存的canvas,窗口的canvas为canvas
MemoryCanvas:=TCanvas.Create;
MemoryCanvas.Handle:=CreateCompatibleDC(Canvas.Handle);
MapBitmap:=TBitmap.Create;//你的地图
//加载图片到mapbitmap中,游戏的背景地图
......................自己完成
//绘制其他的东西,比如人物,树木等游戏中的东西到内存canvas中
......................自己完成
//将地图选中到你的内存canvas中
OldBitmapHDC:=SelectObject(MemoryCanvas.Handle,MemoryBitmap.Handle);
下一步:拷贝内存canvas到窗口的canvas中
BitBlt(Canvas.Handle,0,0,
1024,768,
MemoryCanvas.Handle,MapX,MapY,SRCCOPY);
MapX,MapY为地图左上角在屏幕上的坐标
最后:一定要释放资源,还原设备上下文
..................自己完成