Compartir a través de


Mostrar una imagen y almacenarla en un metarchivo mejorado

Esta sección contiene un ejemplo que muestra la creación de una imagen y el proceso de almacenamiento de los registros correspondientes en un metarchivo. En el ejemplo se dibuja una imagen para la presentación o se almacena en un metarchivo. Si se proporciona un identificador de contexto del dispositivo de visualización, dibuja una imagen en la pantalla mediante varias funciones GDI. Si se proporciona un contexto de dispositivo de metarchivo mejorado, almacena la misma imagen en el metarchivo mejorado.

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); 
}