Там какой-либо путь состоит в том, чтобы нарисовать изображение PNG на окне, не используя MFC?

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

Как я рисую изображение PNG в окне?

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

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

5
задан Jon Seigel 6 March 2010 в 00:06
поделиться

4 ответа

Взгляните на этот вопрос 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;
}
6
ответ дан 13 December 2019 в 05:36
поделиться

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

2
ответ дан 13 December 2019 в 05:36
поделиться

На ваш выбор: GDI +, WIC (компонент Windows Imaging) или libpng

3
ответ дан 13 December 2019 в 05:36
поделиться

Код ниже работал на меня. Он не содержит 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);

Спасибо за всю вашу поддержку и быструю реакцию для решения моей проблемы.

1
ответ дан 13 December 2019 в 05:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: