그림 표시 및 고급 메타파일에 저장
이 섹션에는 그림을 만들고 해당 레코드를 메타파일에 저장하는 프로세스를 보여 주는 예제가 포함되어 있습니다. 이 예제에서는 그림을 디스플레이에 그리거나 메타파일에 저장합니다. 디스플레이 디바이스 컨텍스트 핸들이 제공되면 다양한 GDI 함수를 사용하여 화면에 그림을 그립니다. 향상된 메타파일 디바이스 컨텍스트가 제공되면 동일한 그림을 향상된 메타파일에 저장합니다.
void DrawOrStore(HWND hwnd, HDC hdcMeta, HDC hdcDisplay)
{
RECT rect;
HDC hDC;
int fnMapModeOld;
HBRUSH hbrOld;
// Draw it to the display DC or store it in the metafile device context.
if (hdcMeta)
hDC = hdcMeta;
else
hDC = hdcDisplay;
// Set the mapping mode in the device context.
fnMapModeOld = SetMapMode(hDC, MM_LOENGLISH);
// Find the midpoint of the client area.
GetClientRect(hwnd, (LPRECT)&rect);
DPtoLP(hDC, (LPPOINT)&rect, 2);
// Select a gray brush.
hbrOld = SelectObject(hDC, GetStockObject(GRAY_BRUSH));
// Draw a circle with a one inch radius.
Ellipse(hDC, (rect.right/2 - 100), (rect.bottom/2 + 100),
(rect.right/2 + 100), (rect.bottom/2 - 100));
// Perform additional drawing here.
// Set the device context back to its original state.
SetMapMode(hDC, fnMapModeOld);
SelectObject(hDC, hbrOld);
}