향상된 메타파일 만들기
CreateEnhMetaFile 함수를 사용하여 적절한 인수를 제공하여 향상된 메타파일을 만듭니다. 시스템은 이러한 인수를 사용하여 그림 크기를 유지 관리하고 메타파일을 디스크에 저장할지 메모리에 저장할지 여부를 결정합니다.
출력 디바이스에서 그림 크기를 유지하려면 CreateEnhMetaFile 에서 참조 디바이스의 해상도가 필요합니다. 이 참조 디바이스 는 그림이 처음 나타난 디바이스이며 참조 DC는 참조 디바이스와 연결된 디바이스 컨텍스트 입니다. CreateEnhMetaFile 함수를 호출할 때 이 DC를 식별하는 핸들을 제공해야 합니다. GetDC 또는 CreateDC 함수를 호출하여 이 핸들을 가져올 수 있습니다. NULL을 핸들로 지정하여 참조 디바이스에 현재 디스플레이 디바이스를 사용할 수도 있습니다.
대부분의 애플리케이션은 그림을 영구적으로 저장하므로 디스크에 저장된 향상된 메타파일을 만듭니다. 그러나 필요하지 않은 경우 몇 가지 인스턴스가 있습니다. 예를 들어 차트 그리기 기능을 제공하는 워드 프로세싱 애플리케이션은 메모리에 사용자 정의 차트를 향상된 메타파일로 저장한 다음 메모리에서 향상된 메타파일 비트를 사용자의 문서 파일로 복사할 수 있습니다. 디스크에 영구적으로 저장된 메타파일이 필요한 애플리케이션은 CreateEnhMetaFile을 호출할 때 파일 이름을 제공해야 합니다. 파일 이름을 제공하지 않으면 시스템에서 자동으로 메타파일을 임시 파일로 처리하고 메모리에 저장합니다.
그림 및 작성자 정보가 포함된 메타파일에 선택적 텍스트 설명을 추가할 수 있습니다. 애플리케이션은 파일 열기 대화 상자에 이러한 문자열을 표시하여 사용자에게 적절한 파일을 선택하는 데 도움이 되는 메타파일 콘텐츠에 대한 정보를 제공할 수 있습니다. 애플리케이션에 텍스트 설명이 포함된 경우 CreateEnhMetaFile을 호출할 때 문자열에 대한 포인터를 제공해야 합니다.
CreateEnhMetaFile이 성공하면 특수 메타파일 디바이스 컨텍스트를 식별하는 핸들을 반환합니다. 메타파일 디바이스 컨텍스트는 출력 디바이스가 아닌 파일과 연결된다는 측면에서 고유합니다. 시스템은 메타파일 디바이스 컨텍스트에 대한 핸들을 받은 GDI 함수를 처리할 때 GDI 함수를 고급 메타파일 레코드로 변환하고 향상된 메타파일의 끝에 레코드를 추가합니다.
그림이 완료되고 마지막 레코드가 향상된 메타파일에 추가되면 애플리케이션 은 CloseEnhMetaFile 함수를 호출하여 파일을 닫을 수 있습니다. 이 함수는 특수 메타파일 디바이스 컨텍스트를 닫고 삭제하고 향상된 메타파일을 식별하는 핸들을 반환합니다.
고급 형식 메타파일 또는 고급 형식 메타파일 핸들을 삭제하려면 DeleteEnhMetaFile 함수를 호출합니다.