Есть ли способ нарисовать изображение PNG в окне без использования MFC? - PullRequest
5 голосов
/ 15 декабря 2009

Я разрабатываю приложение Windows API без использования MFC . Я использую стандартные библиотеки Windows.

Как нарисовать изображение PNG в окне?

Помогите мне с примером кода.

Я пробовал некоторые коды, которые доступны в Интернете, но все используют MFC.

Ответы [ 5 ]

6 голосов
/ 15 декабря 2009

Взгляните на этот вопрос StackOverflow . Он предлагает несколько вариантов, которые должны соответствовать вашим потребностям.

Адаптировано с MSDN :

#include <windows.h>
#include <gdiplus.h>
#include <stdio.h>
using namespace Gdiplus;

void draw()
{
   // start up GDI+ -- only need to do this once per process at startup
   GdiplusStartupInput gdiplusStartupInput;
   ULONG_PTR gdiplusToken;
   GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);


   Rect rect(20,20,50,50);
   Graphics grpx(dc);
   Image* image = new Image(L"SomePhoto.png");
   grpx.DrawImage(Img,rect);

   delete image;

   // shut down - only once per process
   GdiplusShutdown(gdiplusToken);
   return;
}
3 голосов
/ 15 декабря 2009

Вы можете выбрать: GDI +, WIC (Windows Imaging Component) или libpng

2 голосов
/ 15 декабря 2009

Вы можете использовать GDI +. См. Загрузка и отображение растровых изображений .

1 голос
/ 29 декабря 2009

Код ниже работал для меня. В нем нет MFC, и его можно использовать для рисования изображений PNG в окне.

    Gdiplus::Image image(L"C:\\Logo.png") ;

    Gdiplus::Graphics* graphics = Gdiplus::Graphics::FromHDC(GetDC(hWnd));

    RectF ImgRect(0,0,y3/10,y3/10) ;

    Gdiplus::Status result = graphics->DrawImage(&image, ImgRect);

Спасибо за вашу поддержку и быстрый ответ, чтобы решить мою проблему.

0 голосов
/ 26 августа 2010

Если вы знаете кодировку PNG, вы можете ее расшифровать. Таким образом, вы можете рисовать PNG любым способом ~

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...