GDI+ 초기화

MFC 또는 네이티브 C/VC++와 함께 GDI+ 사용


 



 








  • 데모 프로젝트 다운로드 - 25.4Kb

  • 소개


    Google에서 GDI+ 샘플 쿼리를 수행했다면 .NET 무료 코드를 가리키는 수백 또는 수천 개의 URL을 얻을 수 있을 것입니다. 서점에 가면 GDI+에 대해 이야기하는 수십 권의 책을 볼 수 있습니다. 그러나 시도하면 GDI+를 MFC/ATL/WTL과 통합하는 방법에 대한 정보를 찾으면 아무 것도 찾을 수 없을 것입니다.(가능하다면 URL을 게시해 주세요!) 그래서, 그것이 불가능하거나 너무 어려워 사용할 가치가 없는 것입니까?

    결과


    대답은: MFC/ATL/WTL 또는 C 언어에서도 GDI+를 사용하기가 매우 쉽습니다. 첫째, 저는 .NET에 대한 지식이 없음을 인정해야 합니다. 저는 Microsoft .NET의 팬이 아니라 플랫폼 SDK를 선호합니다. . GDI+는 .NET 전용이 아닙니다. XP보다 낮은 Windows 버전에서 GDI+를 사용하려는 경우 GDI+ 런타임을 재배포해야 합니다(여기). 걱정하지 마세요. xxMB가 아니라 1.04MB입니다. .NET 런타임.

    그래서?



  • stdafx.h에 다음 줄을 추가하십시오.
    #include <gdiplus.h> using namespace Gdiplus; #pragma comment(lib, "gdiplus.lib")
  • GDI+ 리소스를 초기화합니다.이 항목을 CWinApp 파생 클래스에 구성원으로 추가합니다.
    GdiplusStartupInput gdiplusStartupInput;
    ULONG_PTR gdiplusToken;
    InitInstance()에서 다음을 추가합니다.
  • 이제 응용 프로그램이 GDI+를 사용할 준비가 되었습니다.
  • 종료 시 GDI+ 리소스를 해제합니다. ExitInstance()에 다음 줄을 추가합니다. :
    GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

  • 보시다시피 아주 간단합니다. 일반적으로 기존 WIN32/MFC/WTL 페인팅 코드를 GDI+로 이식하는 것은 매우 쉽습니다. 이유를 묻는다면 RedEyeCorrection 라는 GDI+ C++ 클래스가 하나 있다고 생각해 보십시오. 바로, 플래시 사진에서 가끔 발생하는 적목 현상을 수정하기 위해 1년 이상 WIN32/MFC 경험이 있는 경우 여기 링크를 따라가면 더 많은 것을 볼 수 있습니다.
    위의 내용을 보여주기 위해 데모 프로젝트를 포함했습니다.
    GDI+는 장치 컨텍스트 핸들 중심이므로 실제 드로잉 코드와 별도로 드로잉 로직을 분할할 수 있다면 GDI+로 이식하는 데 문제가 없을 것입니다.어떤 경우에는 100라인의 드로잉 코드를 GDI+ 집중 지원으로 단 5라인으로 줄일 수 있습니다. 복잡한 드로잉 연습의 경우 일반 GDI와 GDI+를 혼합하는 것은 간단한 작업입니다.
    다운로드한 프로젝트는 표준 MFC SDI 프로젝트입니다. 읽어보셨다면(그렇기를 바랍니다...) 믿을 수 없을 정도로 간단하다는 것을 알게 되실 것입니다. 거의 항상 MSDN에 포함된 소스 코드를 잘라내어 붙여넣을 수 있습니다. 한 가지 팁: GDI+가 외부 파일을 로드해야 하는 경우 도움말에서 이미지를 마우스 오른쪽 버튼으로 클릭하고 저장한 다음 다운로드한 프로젝트를 계속 사용하여 테스트를 계속할 수 있습니다.
    마지막으로, VC++ 검색 경로에 필요한 GDI+ 헤더, 라이브러리를 가지려면 플랫폼 SDK 사본이 필요합니다. 최신 버전에는 필요하지 않습니다. 저는 Aug'02 버전을 사용하고 있습니다. GDI+ 파일은 CAB_11에서 추출할 수 있습니다. SDK를 설치하지 않으려는 경우.

    좋은 웹페이지 즐겨찾기