关于位图显示的问题(BitBlt)
我用一个二维数组(map[n][n])来保存显示时某个位置显示哪个位图用的两个for循环和一个switch语句来显示
int i,j;
for(i=0;i<MAP_X;i++)
for(j=0;j<MAP_Y;j++)
{
switch(map[i][j])
{
case 1:
BitBlt(mdc,i*B_X,j*B_Y,B_X,B_Y,Hdcw,0,0,SRCCOPY);
break;
case 2:
BitBlt(mdc,i*B_X,j*B_Y,B_X,B_Y,Hdcm,0,0,SRCCOPY);
break;
case 3:
BitBlt(mdc,i*B_X,j*B_Y,B_X,B_Y,Hdcb,0,0,SRCCOPY);
break;
case 9:
BitBlt(mdc,i*B_X,j*B_Y,B_X,B_Y,Hdcrole,0,0,SRCCOPY);
break;
}
}
就是上头这些代码,B_X和B_Y是加载的位图的大小。
程序执行后显示的窗口中x和y反转了
就是map[2][4]的位置(2*B_X,4*B_Y)我是想要显示1号图的,但是却在显示时在(4*B_Y,2*B_X)的位置显示了1号图,但是却在(2*B_X,4*B_Y)的位置显示了map[4][2]标识的图
这个是怎么回事?
我刚学这个没多久,望知道的解释下,谢谢了
[ 本帖最后由 tjf0604 于 2009-11-24 20:32 编辑 ]