日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

VC2019 使用GDI+ 显示PNG图片

發(fā)布時(shí)間:2025/4/14 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VC2019 使用GDI+ 显示PNG图片 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

新建一個(gè)單文檔工程;

添加一個(gè)菜單;在視類中處理此菜單;

視類CPP文件添加:

? ??#include "gdiplus.h"

視類.h文件添加成員:

? ??ULONG_PTR m_gdiplusToken;

視類.h文件頭部添加:

? ??#pragma comment(lib,"gdiplus.lib")

? ? 這是載入GDI+的庫(kù);

gdiplus.h,在 外部依賴項(xiàng) 中可以發(fā)現(xiàn);

先在VC資源中導(dǎo)入png1.png;操作失敗;將文件拷貝到項(xiàng)目res文件夾下,并修改.rc文件;.rc文件包括如下一句;

IDB_PNG1 ? ? ? ? ? ? ? ?PNG ? ? ? ? ? ? ? ? ? ? "res\\png1.png"

菜單處理函數(shù):

void CimageDemo1View::OnMenu32771() {// TODO: 在此添加命令處理程序代碼Gdiplus::GdiplusStartupInput gdiplusStartupInput;Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);CClientDC* pDC = new CClientDC(GetDlgItem(IDB_PNG1));//CClientDC* pDC = new CClientDC();CRect rect;//GetDlgItem(IDB_PNG1)->GetWindowRect(&rect);rect.top = 0;rect.left = 0;rect.bottom = 350;rect.right = 800;Gdiplus::Graphics graphics(pDC->m_hDC); // Create a GDI+ graphics object Gdiplus::Image image(_T("png1.png")); // Construct an image graphics.graphics.DrawImage(&image, 0, 0, image.GetWidth(), image.GetHeight());delete pDC;//Gdiplus::GdiplusShutdown(m_gdiplusToken); }

然后還需要在源碼目錄放一個(gè)png1.png;

代碼是先根據(jù)資源中的png生成DC指針;由此DC構(gòu)造Gdiplus::Graphics類別的對(duì)象graphics;然后畫(huà)png1.png到此graphics對(duì)象上;

運(yùn)行;

有如下問(wèn)題;

? ? GetDlgItem(IDB_PNG1)->GetWindowRect(&rect);

此句引發(fā)異常:讀取位置 0x00000020 時(shí)發(fā)生訪問(wèn)沖突;

根據(jù)網(wǎng)上資料有:

? ? vs不支持通過(guò)AfxGetMainWnd()獲取窗口句柄,把AfxGetMainWnd()->m_hWnd改成AfxGetApp()->m_pMainWnd->m_hWnd即可;

先改為直接設(shè)置rect的值;

然后最后這句是釋放GDI+庫(kù),會(huì)引發(fā)?寫(xiě)入位置 0x02EF12BC 時(shí)發(fā)生訪問(wèn)沖突;先注釋掉;

然后是圖像并沒(méi)有畫(huà)到本窗口的DC上,是畫(huà)到了桌面的DC上;

下回再搞;如果是直接從Debug目錄運(yùn)行.exe文件,此目錄也需要放一個(gè)png1.png;

總結(jié)

以上是生活随笔為你收集整理的VC2019 使用GDI+ 显示PNG图片的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。