读书人

请问一下怎么从内存中载入BMP图像和光

发布时间: 2012-02-20 21:18:23 作者: rapoo

请教一下如何从内存中载入BMP图像和光标?
完整的bmp和光标文件已经存贮在内存中, 请教一下如何从内存中载入BMP图像和光标?

[解决办法]
呵呵,http://shukaiyang.myweb.hinet.net/dibtips/index.html好像不对
这里有个函数,你改一下就可以,看ReadFile之后的部分
HBITMAP CreateBitmapObjectFromDibFile (HDC hdc, PTSTR szFileName)

{

BITMAPFILEHEADER * pbmfh ;

BOOL bSuccess ;

DWORD dwFileSize, dwHighSize, dwBytesRead ;

HANDLE hFile ;

HBITMAP hBitmap ;


// Open the file: read access, prohibit write access


hFile = CreateFile (szFileName, GENERIC_READ, FILE_SHARE_READ, NULL,

OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL) ;

if (hFile == INVALID_HANDLE_VALUE)

return NULL ;


// Read in the whole file


dwFileSize = GetFileSize (hFile, &dwHighSize) ;


if (dwHighSize)

{

CloseHandle (hFile) ;

return NULL ;

}


pbmfh = malloc (dwFileSize) ;


if (!pbmfh)

{

CloseHandle (hFile) ;

return NULL ;

}


bSuccess = ReadFile (hFile, pbmfh, dwFileSize, &dwBytesRead, NULL) ;

CloseHandle (hFile) ;


// Verify the file

if (!bSuccess || (dwBytesRead != dwFileSize)

|| (pbmfh-> bfType != * (WORD *) "BM ")

|| (pbmfh-> bfSize != dwFileSize))

{

free (pbmfh) ;

return NULL ;

}

// Create the DDB

hBitmap = CreateDIBitmap (hdc,

(BITMAPINFOHEADER *) (pbmfh + 1),

CBM_INIT,

(BYTE *) pbmfh + pbmfh-> bfOffBits,

(BITMAPINFO *) (pbmfh + 1),

DIB_RGB_COLORS) ;

free (pbmfh) ;

return hBitmap ;

}

读书人网 >VC/MFC

热点推荐