Visualizzazione di un'immagine e archiviazione in un metafile avanzato
Questa sezione contiene un esempio che illustra la creazione di un'immagine e il processo di archiviazione dei record corrispondenti in un metafile. L'esempio disegna un'immagine per la visualizzazione o la archivia in un metafile. Se viene specificato un handle di contesto del dispositivo visualizzato, disegna un'immagine sullo schermo usando varie funzioni GDI. Se viene specificato un contesto di dispositivo metafile avanzato, archivia la stessa immagine nel metafile avanzato.
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);
}