GDI+学习笔记(八)MFC图片控件中显示一张图片


请尊重本人的工作成果,转载请留言,并说明转载地址,谢谢。地址如下:

http://blog.csdn.net/fukainankai/article/details/27710883


不得不说,人的惰性是很可怕的,稍微懒惰一下,时间就会溜得飞起。


在本系列之前的文章中,相信大家基本上已经了解了如何在win32环境下使用gdi+绘制一些简单的图形,然而,实际上很多朋友在使用gdi+的时候往往需要用到MFC,其实,如果对我前面几片博客多看几遍,理解了,这些都不是太大的问题,虽然MFC隐藏了很多细节,但是这些并不会影响到我们队GDI+的使用。


(一)在基于对话框的图片控件中使用GDI+

我们创建一

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 MFC 使用 GDI+ 将 PNG 图像显示到指定的矩形区域,可以按照以下步骤进行操作: 1. 在头文件包含 GDI+ 库: ``` #include <gdiplus.h> #pragma comment (lib,"Gdiplus.lib") using namespace Gdiplus; ``` 2. 在 MFC 对话框的 OnInitDialog 函数初始化 GDI+: ``` GdiplusStartupInput gdiplusStartupInput; ULONG_PTR gdiplusToken; GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); ``` 3. 加载 PNG 图像并创建 GDI+ 的 Image 对象: ``` Image* pImage = Image::FromFile(L"test.png", FALSE); ``` 4. 获取指定矩形区域的设备上下文(DC): ``` CRect rect; GetDlgItem(IDC_STATIC_IMAGE)->GetClientRect(rect); CDC* pDC = GetDlgItem(IDC_STATIC_IMAGE)->GetDC(); ``` 5. 创建 GDI+ 的 Graphics 对象,并将其绑定到 DC 上: ``` Graphics graphics(pDC->GetSafeHdc()); ``` 6. 将 PNG 图像绘制到指定矩形区域: ``` graphics.DrawImage(pImage, rect.left, rect.top, rect.Width(), rect.Height()); ``` 7. 释放 GDI+ 相关资源: ``` delete pImage; GdiplusShutdown(gdiplusToken); ``` 完整代码示例: ``` #include <gdiplus.h> #pragma comment (lib,"Gdiplus.lib") using namespace Gdiplus; ... BOOL CMyDialog::OnInitDialog() { CDialogEx::OnInitDialog(); // 初始化 GDI+ GdiplusStartupInput gdiplusStartupInput; ULONG_PTR gdiplusToken; GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); // 加载 PNG 图像并创建 Image 对象 Image* pImage = Image::FromFile(L"test.png", FALSE); // 获取指定矩形区域的 DC CRect rect; GetDlgItem(IDC_STATIC_IMAGE)->GetClientRect(rect); CDC* pDC = GetDlgItem(IDC_STATIC_IMAGE)->GetDC(); // 创建 Graphics 对象,并将其绑定到 DC 上 Graphics graphics(pDC->GetSafeHdc()); // 将 PNG 图像绘制到指定矩形区域 graphics.DrawImage(pImage, rect.left, rect.top, rect.Width(), rect.Height()); // 释放资源 delete pImage; GdiplusShutdown(gdiplusToken); return TRUE; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值