原来的程序没有问题,用的是setdibbitstodevice显示。后来我把它改成这样(目的是具体看看数据)
for(i=0;i<lpheight;i++)
{
for(int j=0;j<(lpwidth);j++)
{
dc.SetPixel(j,lpheight-i,RGB(*(-4*i+lpDIBBits+3*(j+i*lpwidth)),4*i+lpDIBBits+3*(j+i*lpwidth)+1),,4*i+lpDIBBits+3*(j+i*lpwidth)+2),));
}
}
这中间,我必须加上-4*i才能正常显示出来,而没有它则变成了向左倾斜的图象。也就是每读一行会多读出4个BYTE。这怎么回事?