方法一:利用《利用COM组件IPicture读取jpg、gif、bmp图片文件数据和显示图片的两个函数》中的方法二显示,此方法适用于BMP、JPG、GIF格式的图片
只需获取控件的指针,掉用ShowPicture函数即可。
方法二:使用SetBitMap只适用于BMP图片
1.利用位图资源加载位图
代码
1 // uBmpResource:图片ID; uCtrlResource: Picture控件ID
2 void SetBitmap(UINT uBmpResource, UINT uCtrlResource)
3 {
4 HBITMAP hBitmap;
5 CStatic *pStatic = (CStatic *)GetDlgItem(uCtrlResource);
6 hBitmap = (HBITMAP)LoadImage(
7 AfxGetInstanceHandle(),
8 MAKEINTRESOURCE(uBmpResource),
9 IMAGE_BITMAP,
10 0,
11 0,
12 LR_LOADMAP3DCOLORS);
13 pStatic->ModifyStyle(0xF, SS_BITMAP);
14 pStatic->SetBitmap(hBitmap);
15 }
16
2.利用位图文件路径加载位图
代码
1 // strPath:图片路径; uCtrlResource: Picture控件ID
2 void SetBitmap(CString strPath, UINT uCtrlResource)
3 {
4 HBITMAP hBitmap;
5 CStatic *pStatic = (CStatic *)GetDlgItem(uCtrlResource);
6 hBitmap = (HBITMAP)LoadImage(
7 AfxGetInstanceHandle(),
8 strPath,
9 IMAGE_BITMAP,
10 0,
11 0,
12 LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS);
13 pStatic->ModifyStyle(0xF, SS_BITMAP);
14 pStatic->SetBitmap(hBitmap);
15 }
16
方法三:获取控件的指针,将位图绘制在上面,原理基本同方法一
获取控件的CDC使用其 BitBlt(....)方法