首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

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

请教一下如何从内存中载入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 ;

}

热点排行