VC对话框中贴jpeg或png的方法

1.在VC6中使用 GDI+:你得从网上弄个 GDI+ for XP 的库,把它解压后,将所有文件还包括子目录中的文件复制到你的项目目录

在 stdafx.h中加入以下代码:

#define UNICODE
#ifndef ULONG_PTR
#define ULONG_PTR unsigned long*
#endif
#include "gdiplus.h" 请修改为你的头文件路径  
using namespace Gdiplus;  
#pragma comment(lib, "gdiplus.lib") 请修改为你的.lib文件路径

我的项目名为Test,所以在TestApp中加入全局变量  
ULONG_PTR gdiplusToken;   
 在 BOOL CTestApp::InitInstance()中加入这两行:  
GdiplusStartupInput gdiplusStartupInput;  
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);   
记住在线程退出后要御掉GDI+,它很占资源的,在 int CTestApp::ExitInstance()  中加入这行:  
GdiplusShutdown(gdiplusToken);  

2.在要贴的对话的OnPaint() 函数中加入以下代码:

例如:

void CDlgUserManagement::OnPaint()
{
 CPaintDC dc(this); // device context for painting
 
 // TODO: Add your message handler code here
  //建立图形对象
  Graphics mGraphics( dc.GetSafeHdc() );
  
 //装入图像文件  
  Image img( L"bk.jpg", TRUE );   
 //在指定区域pdestPoints显示图像 (根据背景大小按比例缩放)
   
 CRect rcClient;
 GetClientRect( &rcClient ); 
 BOOL bWidth = rcClient.Width() / img.GetWidth() > rcClient.Height() / img.GetHeight();
//  if ( bWidth )
//  {
//   mGraphics.DrawImage( &img, 0, 0, rcClient.Width(), rcClient.Width() * img.GetHeight() / img.GetWidth() );
//  }
//  else
//  {
//   mGraphics.DrawImage(&img, 0, 0, rcClient.Height() * img.GetWidth() / img.GetHeight(), rcClient.Height() );
//  }//缩放   
 
 mGraphics.DrawImage(&img, 0, 0, img.GetWidth(), img.GetHeight());//原始大小 
 // Do not call CDialog::OnPaint() for painting messages
}

最后Rebuild All

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值