怎样显示Jpg,bmp,Gif图像文件

LoadImage只能加载bmp,ico,cur文件,但是对于jpg,gif等文件则无能为力,下面就是介绍用VC怎么显示jpg,gif,bmp文件

 

1:LoadImage

 

HBITMAP hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),"128.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_DEFAULTCOLOR|LR_DEFAULTSIZE);

 

2:GdiPlus

 

A. 在stdafx.h中或者cpp文件的头部引入下面两条语句

     #include    <gdiplus.h>
     using namespace Gdiplus;

B. 在项目属性-》连接器-》输入-》附加依赖项中加入gdiplus.lib

 

C. 初始化gdiplus(一般在InitInstance或者OnInitDialog中加入)

   GdiplusStartupInput gdiplusStartupInput;
   ULONG_PTR           gdiplusToken;

   GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

 

D.实现在一个Static(IDC_STATIC1)中显示,在其它地方也可以只要具有Window

  RECT rect;
  HDC hdc;
  PAINTSTRUCT ps;

 

 GetDlgItem(IDC_STATIC1)->GetClientRect(&rect);
 hdc = GetDlgItem(IDC_STATIC1)->GetWindowDC()->m_hDC;
 Graphics graphics(hdc); 

 

//由于Gdiplus::Image img()语句的参数必须是wchar_t *的形式,下面就是将文件名strFileName从char *转换为wchar_t *    

int wcsLen;

wchar_t* wszFileName;


 wcsLen = ::MultiByteToWideChar(CP_ACP, NULL, strFileName, strlen(strFileName), NULL, 0);
 wszFileName = new wchar_t[wcsLen + 1];
 ::MultiByteToWideChar(CP_ACP, NULL, strFileName, strlen(strFileName), wszFileName, wcsLen);
 wszFileName[wcsLen] = '/0';


 Gdiplus::Image img(wszFileName);
 graphics.DrawImage(&img, 0, 0, rect.right - rect.left, rect.bottom - rect.top);
 ::ReleaseDC(GetDlgItem(IDC_STATIC1)->m_hWnd, hdc);

 

delete wszFileName;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值