<DIV>&nbsp;hello:</DIV>
<DIV>&nbsp; the following code,can not show tif:</DIV>
<DIV>void CTrans::DrawImage1(void)<BR>{&nbsp; <BR>&nbsp; m_pMemoryDC-&gt;SelectObject(m_pMemoryBitMap);<BR>&nbsp; CRect rc(0,0,m_pViewWidth,m_pViewHeight); <BR>&nbsp; CBrush brush(RGB(255,255,255));<BR>&nbsp;&nbsp;&nbsp;&nbsp; m_pMemoryDC-&gt;FillRect(rc,&amp;brush);&nbsp;<BR>&nbsp; if( poDataset != NULL ) <BR>&nbsp; {</DIV>
<DIV>&nbsp;<BR>&nbsp;&nbsp;&nbsp;GDALRasterBand *poBand1;&nbsp;&nbsp; //遥感的一个波段<BR>&nbsp;&nbsp;&nbsp;GDALRasterBand *poBand2;<BR>&nbsp;&nbsp;&nbsp;GDALRasterBand *poBand3;<BR>&nbsp;&nbsp;&nbsp;int nBandCount;<BR>&nbsp;&nbsp;&nbsp;nBandCount=poDataset-&gt;GetRasterCount();<BR>&nbsp;&nbsp;&nbsp;poBand1=poDataset-&gt;GetRasterBand(1);<BR>&nbsp;&nbsp;&nbsp;poBand2=poDataset-&gt;GetRasterBand(2);<BR>&nbsp;&nbsp;&nbsp;poBand3=poDataset-&gt;GetRasterBand(3);<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;if (poBand1!=NULL &amp;&amp; poBand2 != NULL &amp;&amp;poBand3!=NULL)&nbsp; <BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;//获取图像的尺寸<BR>&nbsp;&nbsp;&nbsp;//获取图像窗口尺寸<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;int nImgSizeX=poDataset-&gt;GetRasterXSize();<BR>&nbsp;&nbsp;&nbsp;int nImgSizeY=poDataset-&gt;GetRasterYSize();<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;int nBufferSizeX,nBufferSizeY;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;nBufferSizeX = nImgSizeX;<BR>&nbsp;&nbsp;&nbsp;nBufferSizeY= nImgSizeY;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;BYTE *pafScanblock1,*TempLock1;<BR>&nbsp;&nbsp;&nbsp;BYTE *pafScanblock2,*TempLock2;<BR>&nbsp;&nbsp;&nbsp;BYTE *pafScanblock3,*TempLock3;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp; &nbsp;&nbsp;&nbsp;pafScanblock1 = (BYTE *) CPLMalloc((nBufferSizeX)*(nBufferSizeY));<BR>&nbsp;&nbsp;&nbsp;pafScanblock2 = (BYTE *) CPLMalloc((nBufferSizeX)*(nBufferSizeY));<BR>&nbsp;&nbsp;&nbsp;pafScanblock3 = (BYTE *) CPLMalloc((nBufferSizeX)*(nBufferSizeY));<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;TempLock1 = pafScanblock1;<BR>&nbsp;&nbsp;&nbsp;TempLock2 = pafScanblock2;<BR>&nbsp;&nbsp;&nbsp;TempLock3 = pafScanblock3;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;poBand1-&gt;RasterIO( GF_Read, 0, 0,nBufferSizeX,nBufferSizeY, <BR>&nbsp;&nbsp;&nbsp;&nbsp;pafScanblock1,nBufferSizeX,nBufferSizeY, GDT_Byte,0, 0 );<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;poBand2-&gt;RasterIO( GF_Read, 0, 0,nBufferSizeX,nBufferSizeY, <BR>&nbsp;&nbsp;&nbsp;&nbsp;pafScanblock2,nBufferSizeX,nBufferSizeY, GDT_Byte,0, 0 );<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;poBand3-&gt;RasterIO( GF_Read, 0, 0,nBufferSizeX,nBufferSizeY, <BR>&nbsp;&nbsp;&nbsp;&nbsp;pafScanblock3,nBufferSizeX,nBufferSizeY, GDT_Byte,0, 0 );&nbsp;&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;//在View逐点显示图像<BR>&nbsp;&nbsp;&nbsp;DWORD dwBytes = (nBufferSizeX * 24) / 8;&nbsp;<BR>&nbsp;&nbsp;&nbsp;while(((DWORD) dwBytes) % 4) <BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;dwBytes++;<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;BYTE *szBuffer = new BYTE[nBufferSizeY*dwBytes];<BR>&nbsp;&nbsp;&nbsp;memset(szBuffer,0,nBufferSizeY*dwBytes);<BR>&nbsp;&nbsp;&nbsp;BYTE *pTemp = szBuffer; <BR>&nbsp;&nbsp;&nbsp;int nIndex = 0;<BR>&nbsp;&nbsp;&nbsp;for (int i=0;i&lt;nBufferSizeY;i++)<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;for (int j=0;j&lt;nBufferSizeX;j++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BYTE dn1=*pafScanblock1;<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;BYTE dn2=*pafScanblock2;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;BYTE dn3=*pafScanblock3;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memcpy(szBuffer,(char*)(&amp;dn3),1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;szBuffer+=1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memcpy(szBuffer,(char*)(&amp;dn2),1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;szBuffer+=1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memcpy(szBuffer,(char*)(&amp;dn1),1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;szBuffer+=1;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pafScanblock1++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pafScanblock2++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pafScanblock3++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;szBuffer = pTemp+dwBytes*i;<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;CPLFree(TempLock1);<BR>&nbsp;&nbsp;&nbsp;CPLFree(TempLock2);<BR>&nbsp;&nbsp;&nbsp;CPLFree(TempLock3);&nbsp;<BR>&nbsp;&nbsp;&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;BITMAPINFOHEADER bmiHdr;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BITMAPINFO MapInfo;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memset(&amp;bmiHdr, 0, sizeof(BITMAPINFOHEADER));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bmiHdr.biBitCount = 3*8;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bmiHdr.biClrImportant = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bmiHdr.biClrUsed = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bmiHdr.biCompression = BI_RGB;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bmiHdr.biHeight = -nBufferSizeY;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bmiHdr.biPlanes = 1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bmiHdr.biSize = sizeof(BITMAPINFOHEADER);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;bmiHdr.biSizeImage = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bmiHdr.biWidth = nBufferSizeX;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;bmiHdr.biXPelsPerMeter = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;bmiHdr.biYPelsPerMeter = 0;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;MapInfo.bmiHeader = bmiHdr;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;MapInfo.bmiColors[0].rgbBlue = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;MapInfo.bmiColors[0].rgbGreen = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;MapInfo.bmiColors[0].rgbRed = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;MapInfo.bmiColors[0].rgbReserved = 0;<BR>&nbsp;<BR>&nbsp;&nbsp;//dc.SetStretchBltMode(COLORONCOLOR);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;StretchDIBits(m_pMemoryDC-&gt;GetSafeHdc(), 0, 0, nBufferSizeX,nBufferSizeY,//nScrrenWidth, nScrrenHeight,<BR>&nbsp;&nbsp;&nbsp; 0, 0, bmiHdr.biWidth, -bmiHdr.biHeight,<BR>&nbsp;&nbsp;&nbsp; pTemp, (LPBITMAPINFO)(&amp;MapInfo), DIB_RGB_COLORS, SRCCOPY);<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; GDALClose(poDataset);<BR>&nbsp;&nbsp;&nbsp;delete []pTemp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;<BR>} </DIV>
<DIV>where are wrong?</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV><br><!-- footer --><br> 
<hr>
<font style="font-size:12px;line-height:15px;">[广告] </font><a style="font-size:12px;line-height:15px; color:blue; text-decoration:underline;" href="http://popme.163.com/link/004584_0904_755.html">淘宝史上最创意</a><font style="font-size:12px;line-height:15px;">集市</font>