Freigeben über


Anzeigen eines Bilds und Speichern in einer erweiterten Metadatei

Dieser Abschnitt enthält ein Beispiel, das die Erstellung eines Bilds und den Prozess zum Speichern der entsprechenden Datensätze in einer Metadatei veranschaulicht. Das Beispiel zeichnet ein Bild in die Anzeige oder speichert es in einer Metadatei. Wenn ein Anzeigegerätekontexthandle angegeben ist, zeichnet es ein Bild mit verschiedenen GDI-Funktionen auf den Bildschirm. Wenn ein erweiterter Metadateigerätekontext angegeben wird, wird das gleiche Bild in der erweiterten Metadatei gespeichert.

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