导航

VC图片控件中显示图片的方法

Posted on 2010-04-22 11:26  3DDreams  阅读(4945)  评论(0编辑  收藏  举报

方法一:利用《利用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(....)方法