2009-12-15 6 views
4

MFC을 사용하지 않고 Windows API 응용 프로그램을 개발 중입니다. 표준 Windows 라이브러리를 사용하고 있습니다.MFC를 사용하지 않고 윈도우에 PNG 이미지를 그리는 방법이 있습니까?

어떻게 창에 PNG 이미지를 그립니까?

몇 가지 샘플 코드로 도와주세요.

나는 인터넷에서 사용할 수있는 코드를 시도했지만 모두 MFC를 사용하고 있습니다.

+1

왜 MFC 소스 코드를 파고 들었습니까? – deerchao

+0

MFC는 내부적으로 Win32 API를 사용하므로 확실히 할 수 있습니다. PNG를 그리는 MFC 클래스를 살펴보고 거기에서 호출되는 API를 확인합니다. – A9S6

답변

5

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; 
} 
3

귀하의 선택 사항은 다음과 같습니다 아래의 코드는 나를 위해 일한 GDI +, WIC (Windows 이미징 구성 요소) 또는 libpng

1

. 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

PNG 코딩을 알고 있다면 해독 할 수 있습니다. 그래서 어떤 방식 으로든 PNG를 그릴 수 있습니다 ~

관련 문제