GDI+ 使用

本文详细介绍了使用GDI+库进行图形处理的基础步骤,包括加载库、定义全局变量、启动和关闭GDI+环境,以及如何创建二级缓存以优化内存使用。通过实例代码演示了如何在应用程序中高效地绘制和缓存图形。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

第一步: 加载头文件和lib库
#include <gdiplus.h>
#pragma comment(lib, "gdiplus.lib")
using namespace Gdiplus;

第二步:定义全局变量

 Gdiplus::GdiplusStartupInput  gdiplusStartupInput;
ULONG_PTR       gdiplusToken;

第三步:启动

 Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

第四步:关闭

Gdiplus::GdiplusShutdown(gdiplusToken);

第五步: 创建cache二级缓存

   // Create off-screen bitmap
 Gdiplus::Bitmap* m_pMemBitmap =  ::new Bitmap(rcClient.right, rcClient.bottom);

    // Create off-screen graphics
 Gdiplus::Graphics* m_pMemGraphics = ::Graphics::FromImage(m_pMemBitmap);

    // draw to off-screen graphics
 m_pMemGraphics->DrawImage(m_pBkImage, 0, 0,rcClient.right, rcClient.bottom);
 
 // Create cashed bitmap
Gdiplus::CachedBitmap*  m_pCachedBitmap = ::new CachedBitmap(m_pMemBitmap, pGraphics);

//draw

  CPaintDC dc(this); // device context for painting
  Graphics graphics(dc.m_hDC);

graphics.DrawCachedBitmap(m_pCachedBitmap, 0, 0);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值