CMetaFileDC 클래스
원하는 이미지 또는 텍스트를 만들기 위해 재생할 수 있는 GDI(그래픽 디바이스 인터페이스) 명령 시퀀스가 포함된 Windows 메타파일을 구현합니다.
구문
class CMetaFileDC : public CDC
멤버
공용 생성자
속성 | 설명 |
---|---|
CMetaFileDC::CMetaFileDC | CMetaFileDC 개체를 생성합니다. |
공용 메서드
이름 | 설명 |
---|---|
CMetaFileDC::Close | 디바이스 컨텍스트를 닫고 메타파일 핸들을 만듭니다. |
CMetaFileDC::CloseEnhanced | 향상된 메타파일 디바이스 컨텍스트를 닫고 향상된 메타파일 핸들을 만듭니다. |
CMetaFileDC::Create | Windows 메타파일 디바이스 컨텍스트를 만들어 개체에 CMetaFileDC 연결합니다. |
CMetaFileDC::CreateEnhanced | 향상된 형식 메타파일의 메타파일 디바이스 컨텍스트를 만듭니다. |
설명
Windows 메타파일을 구현하려면 먼저 개체를 만듭니다 CMetaFileDC
. CMetaFileDC
생성자를 호출한 다음, Windows 메타 파일 장치 컨텍스트를 만들고 CMetaFileDC
개체에 연결하는 Create member 함수를 호출합니다.
그런 다음 재생하려는 CDC GDI 명령 시퀀스를 개체에 보냅니 CMetaFileDC
다. 출력을 만드는 GDI 명령(예: MoveTo
및 LineTo
)만 사용할 수 있습니다.
원하는 명령을 메타파일로 보낸 후 메타파일 디바이스 컨텍스트를 닫고 메타파일 핸들을 반환하는 멤버 함수를 호출 Close
합니다. 그런 다음 개체를 삭제합니다 CMetaFileDC
.
CDC::P layMetaFile 은 메타파일 핸들을 사용하여 메타파일을 반복적으로 재생할 수 있습니다. 메타파일은 메타파일을 디스크에 복사하는 CopyMetaFile과 같은 Windows 함수에서 조작할 수도 있습니다.
메타파일이 더 이상 필요하지 않은 경우 DeleteMetaFile Windows 함수를 사용하여 메모리에서 삭제합니다.
출력 호출 및 특성 GDI 호출GetTextExtent
을 모두 처리할 수 있도록 개체를 구현 CMetaFileDC
할 수도 있습니다. 이러한 메타파일은 더 유연하며 출력 및 특성 호출의 혼합으로 구성되는 일반 GDI 코드를 보다 쉽게 재사용할 수 있습니다. 이 클래스는 CMetaFileDC
CDC에서 두 개의 디바이스 컨텍스트와 m_hAttribDC
두 개의 디바이스 컨텍스트를 상속합니다m_hDC
. 디바이스 컨텍스트는 m_hDC
모든 CDC GDI 출력 호출을 m_hAttribDC
처리하고 디바이스 컨텍스트는 모든 CDC GDI 특성 호출을 처리합니다. 일반적으로 이러한 두 디바이스 컨텍스트는 동일한 디바이스를 참조합니다. 이 CMetaFileDC
경우 특성 DC는 기본적으로 NULL로 설정됩니다.
메타파일 이외의 화면, 프린터 또는 디바이스를 가리키는 두 번째 디바이스 컨텍스트를 만든 다음 멤버 함수를 호출 SetAttribDC
하여 새 디바이스 컨텍스트를 연결 m_hAttribDC
합니다. 이제 정보에 대한 GDI 호출이 새 m_hAttribDC
항목으로 전달됩니다. 출력 GDI 호출은 메타파일을 m_hDC
나타내는 로 이동합니다.
자세한 CMetaFileDC
내용은 디바이스 컨텍스트를 참조 하세요.
상속 계층 구조
CMetaFileDC
요구 사항
헤더: afxext.h
CMetaFileDC::Close
메타파일 디바이스 컨텍스트를 닫고 CDC::P layMetaFile 멤버 함수를 사용하여 메타파일을 재생하는 데 사용할 수 있는 Windows 메타파일 핸들을 만듭니다.
HMETAFILE Close();
Return Value
함수가 성공하면 유효한 HMETAFILE입니다. 그렇지 않으면 NULL입니다.
설명
Windows 메타파일 핸들을 사용하여 CopyMetaFile과 같은 Windows 함수를 사용하여 메타파일을 조작할 수도 있습니다.
Windows DeleteMetaFile 함수를 호출하여 사용 후 메타파일을 삭제합니다.
CMetaFileDC::CloseEnhanced
향상된 메타파일 디바이스 컨텍스트를 닫고 향상된 형식 메타파일을 식별하는 핸들을 반환합니다.
HENHMETAFILE CloseEnhanced();
Return Value
성공한 경우 향상된 메타파일의 핸들입니다. 그렇지 않으면 NULL입니다.
설명
애플리케이션은 이 함수에서 반환된 고급 메타파일 핸들을 사용하여 다음 작업을 수행할 수 있습니다.
향상된 메타파일에 저장된 그림 표시
향상된 메타파일의 복사본 만들기
향상된 메타파일에서 개별 레코드 열거, 편집 또는 복사
고급 메타파일 헤더에서 메타파일 내용에 대한 선택적 설명을 검색합니다.
enhanced-metafile 헤더의 복사본 검색
향상된 메타파일의 이진 복사본 검색
선택적 색상표에서 색 열거
향상된 형식 메타파일을 Windows 형식 메타파일로 변환
애플리케이션에 향상된 메타파일 핸들이 더 이상 필요하지 않은 경우 Win32 DeleteEnhMetaFile
함수를 호출하여 핸들을 해제해야 합니다.
CMetaFileDC::CMetaFileDC
두 단계로 개체를 CMetaFileDC
생성합니다.
CMetaFileDC();
설명
먼저 호출 CMetaFileDC
한 다음 호출 Create
합니다. 그러면 Windows 메타파일 디바이스 컨텍스트가 만들어지고 개체에 CMetaFileDC
연결됩니다.
CMetaFileDC::Create
두 단계로 개체를 CMetaFileDC
생성합니다.
BOOL Create(LPCTSTR lpszFilename = NULL);
매개 변수
lpszFilename
null로 끝나는 문자열을 가리킵니다. 만들 메타파일의 파일 이름을 지정합니다. lpszFilename이 NULL이면 새 메모리 내 메타파일이 만들어집니다.
Return Value
함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.
설명
먼저 생성자를 CMetaFileDC
호출한 다음, 호출 Create
하여 Windows 메타파일 디바이스 컨텍스트를 만들고 개체에 CMetaFileDC
연결합니다.
CMetaFileDC::CreateEnhanced
향상된 형식 메타파일의 디바이스 컨텍스트를 만듭니다.
BOOL CreateEnhanced(
CDC* pDCRef,
LPCTSTR lpszFileName,
LPCRECT lpBounds,
LPCTSTR lpszDescription);
매개 변수
pDCRef
향상된 메타파일의 참조 디바이스를 식별합니다.
lpszFileName
null로 끝나는 문자열을 가리킵니다. 만들 고급 메타파일의 파일 이름을 지정합니다. 이 매개 변수가 NULL인 경우 향상된 메타파일은 메모리 기반이며 개체가 제거되거나 Win32 DeleteEnhMetaFile
함수가 호출될 때 해당 내용이 손실됩니다.
lpBounds
향상된 메타파일에 저장할 그림의 HIMETRIC 단위(.01mm 증분)로 치수를 지정하는 RECT 데이터 구조 또는 CRect 개체를 가리킵니다.
lpszDescription
그림을 만든 애플리케이션의 이름과 그림 제목을 지정하는 0으로 끝나는 문자열을 가리킵니다.
Return Value
성공한 경우 향상된 메타파일의 디바이스 컨텍스트 핸들입니다. 그렇지 않으면 NULL입니다.
설명
이 DC는 디바이스 독립적 그림을 저장하는 데 사용할 수 있습니다.
Windows는 pDCRef 매개 변수로 식별된 참조 디바이스를 사용하여 그림이 처음 나타난 디바이스의 해상도와 단위를 기록합니다. pDCRef 매개 변수가 NULL이면 현재 표시 디바이스를 참조에 사용합니다.
lpBounds 매개 변수가 가리키는 데이터 구조의 RECT
왼쪽 및 위쪽 멤버는 각각 오른쪽 및 아래쪽 멤버보다 작아야 합니다. 사각형의 가장자리를 따라 있는 점이 그림에 포함됩니다. lpBounds가 NULL인 경우 GDI(그래픽 디바이스 인터페이스)는 애플리케이션에서 그린 그림을 묶을 수 있는 가장 작은 사각형의 크기를 계산합니다. 가능한 경우 lpBounds 매개 변수를 제공해야 합니다.
lpszDescription 매개 변수가 가리키는 문자열은 애플리케이션 이름과 그림 이름 사이에 null 문자를 포함해야 하며 두 개의 null 문자(예: "XYZ 그래픽 편집기\0Bald Eagle\0\0\0")로 종료해야 합니다. 여기서 \0은 null 문자를 나타냅니다. lpszDescription이 NULL이면 enhanced-metafile 헤더에 해당 항목이 없습니다.
애플리케이션은 이 함수에서 만든 DC를 사용하여 그래픽 그림을 향상된 메타파일에 저장합니다. 이 DC를 식별하는 핸들은 모든 GDI 함수에 전달될 수 있습니다.
애플리케이션이 향상된 메타파일에 그림을 저장한 후 함수를 호출 CDC::PlayMetaFile
하여 모든 출력 디바이스에 그림을 표시할 수 있습니다. 그림을 표시할 때 Windows는 lpBounds 매개 변수가 가리키는 사각형과 참조 디바이스의 해상도 데이터를 사용하여 그림을 배치하고 크기를 조정합니다. 이 함수에서 반환된 디바이스 컨텍스트에는 새 DC와 연결된 동일한 기본 특성이 포함됩니다.
애플리케이션은 Win32 GetWinMetaFileBits
함수를 사용하여 향상된 메타파일을 이전 Windows 메타파일 형식으로 변환해야 합니다.
향상된 메타파일의 파일 이름은 다음을 사용해야 합니다. EMF 확장.