当前位置 - 股票行情交易網 - 金融財經 - vc 加載圖片到指定位置 或加載圖片給面板

vc 加載圖片到指定位置 或加載圖片給面板

1、簡單BMP圖就用 CBitmap類, Load 函數加載圖片,之後用 Detach 取得 HBITMAP 句柄,然後就是妳的顯示了

2、jpg等用IPicture Com接口,用用OleLoadPicture來加載圖像,比如:

void DisplayImage(HDC hDC, LPCTSTR szImagePath)

{

HANDLE hFile=CreateFile(szImagePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); //從指定的路徑szImagePath中讀取文件句柄

DWORD dwFileSize=GetFileSize(hFile, NULL); //獲得圖片文件的大小,用來分配全局內存

HGLOBAL hImageMemory=GlobalAlloc(GMEM_MOVEABLE, dwFileSize); //給圖片分配全局內存

void *pImageMemory=GlobalLock(hImageMemory); //鎖定內存

DWORD dwReadedSize; //保存實際讀取的文件大小

ReadFile(hFile, pImageMemory, dwFileSize, &dwReadedSize, NULL); //讀取圖片到全局內存當中

GlobalUnlock(hImageMemory); //解鎖內存

CloseHandle(hFile); //關閉文件句柄

IStream *pIStream;//創建壹個IStream接口指針,用來保存圖片流

IPicture *pIPicture;//創建壹個IPicture接口指針,表示圖片對象

CreateStreamOnHGlobal(hImageMemory, false, &pIStream) //用全局內存初使化IStream接口指針

OleLoadPicture(pIStream, 0, false, IID_IPicture, (LPVOID*)&(pIPicture));//用OleLoadPicture獲得IPicture接口指針

//得到IPicture COM接口對象後,妳就可以進行獲得圖片信息、顯示圖片等操作

OLE_XSIZE_HIMETRIC hmWidth;

OLE_YSIZE_HIMETRIC hmHeight;

pIPicture->get_Width(&hmWidth); //用接口方法獲得圖片的寬和高

pIPicture->get_Height(&hmHeight);

pIPicture->Render(hDC,0,0,100,100,0,hmHeight,hmWidth,-hmHeight,NULL); //在指定的DC上繪出圖片

GlobalFree(hImageMemory); //釋放全局內存

pIStream->Release(); //釋放pIStream

pIPicture->Release(); //釋放pIPicture

}

3、用GDI、GDI+,主要是Bitmap和Graphics了。相對簡單

4、自己下第三方庫,比如CXimage之類的。