MFC을 사용하지 않고 Windows API 응용 프로그램을 개발 중입니다. 표준 Windows 라이브러리를 사용하고 있습니다.MFC를 사용하지 않고 윈도우에 PNG 이미지를 그리는 방법이 있습니까?
어떻게 창에 PNG 이미지를 그립니까?
몇 가지 샘플 코드로 도와주세요.
나는 인터넷에서 사용할 수있는 코드를 시도했지만 모두 MFC를 사용하고 있습니다.
MFC을 사용하지 않고 Windows API 응용 프로그램을 개발 중입니다. 표준 Windows 라이브러리를 사용하고 있습니다.MFC를 사용하지 않고 윈도우에 PNG 이미지를 그리는 방법이 있습니까?
어떻게 창에 PNG 이미지를 그립니까?
몇 가지 샘플 코드로 도와주세요.
나는 인터넷에서 사용할 수있는 코드를 시도했지만 모두 MFC를 사용하고 있습니다.
this StackOverflow question을 살펴보십시오. 그것은 당신의 필요를 충족시켜야하는 몇 가지 옵션을 제공합니다.
는 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 +를 사용할 수 있습니다. Loading and Displaying Bitmaps을 참조하십시오.
귀하의 선택 사항은 다음과 같습니다 아래의 코드는 나를 위해 일한 GDI +, WIC (Windows 이미징 구성 요소) 또는 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);
내 문제를 해결해 주셔서 감사드립니다.
PNG 코딩을 알고 있다면 해독 할 수 있습니다. 그래서 어떤 방식 으로든 PNG를 그릴 수 있습니다 ~
왜 MFC 소스 코드를 파고 들었습니까? – deerchao
MFC는 내부적으로 Win32 API를 사용하므로 확실히 할 수 있습니다. PNG를 그리는 MFC 클래스를 살펴보고 거기에서 호출되는 API를 확인합니다. – A9S6