IStream *buffer;
::CreateStreamOnHGlobal(NULL, TRUE, &buffer);
CLSID m_bmpClsid;
GetEncoderClsid(L"image/bmp", &m_bmpClsid);
bitmap->Save(buffer,&m_bmpClsid,NULL);
BYTE *m_szBuff = new BYTE[LINEBYTE(w,24)*h];
LARGE_INTEGER li = {0};
buffer->Seek(li, STREAM_SEEK_SET, NULL);
ULONG m_nRead;
buffer->Read(m_szBuff,LINEBYTE(w,24)*h, &m_nRead);
memcpy(src,m_szBuff,LINEBYTE(w,24)*h);
delete[] m_szBuff;
buffer->Release();
说明:bitmap 是Bitmap类型,w,h是图片宽高,LINEBYTE是宏
src 是CxImage 调用 GetBits()的到的内存
bitmap 直接保存到磁盘显示的图片正确
转换成内存,再有CxImage保存,图片出现的错位

请大家帮忙,多谢