Я разрабатываю приложение Windows API, не используя MFC. Я пользуюсь стандартными библиотеками Windows.
Как я рисую изображение PNG в окне?
Помогите мне с некоторым примером кода.
Я попробовал некоторые коды, которые доступны в Интернете, но все используют MFC.
Взгляните на этот вопрос 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;
}
Вы можете использовать GDI +. См. Загрузка и отображение растровых изображений .
На ваш выбор: GDI +, WIC (компонент Windows Imaging) или libpng
Код ниже работал на меня. Он не содержит 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);
Спасибо за всю вашу поддержку и быструю реакцию для решения моей проблемы.