Freigeben über


CPrintDialog::GetDefaults

Ruft die Gerätenstandards des standardmäßigen Druckers ab, ohne ein Dialogfeld anzuzeigen.

BOOL GetDefaults( );

Rückgabewert

Ungleich 0 (null), wenn die Funktion erfolgreich war; 0 andernfalls.

Hinweise

Die abgerufenen Werte werden in die m_pd-Struktur eingefügt.

In einigen Fällen wird ein Aufruf dieser Funktion Konstruktor für CPrintDialog mit bPrintSetupOnly auf, das zu FALSE festgelegt ist.In diesen Fällen wird ein Druckergerätekontext und hDevNames und hDevMode (zwei Handles in m_pd Datenmember) automatisch zugeordnet.

Wenn der Konstruktor für CPrintDialog mit bPrintSetupOnly aufgerufen wurde, das zu FALSE festgelegt wurde, gibt diese Funktion nicht nur hDevNames und hDevMode (in m_pd.hDevNames und in m_pd.hDevMode) an den Aufrufer zurück, gibt aber auch einen Druckergerätekontext in m_pd.hDC zurück.Es liegt in der Verantwortung des Aufrufers, den Druckergerätekontext zu löschen und die Funktion Windows GlobalFree auf den Handles aufrufen, wenn Sie mit dem CPrintDialog-Objekt beendet werden.

Beispiel

Dieses Codefragment ruft den Gerätekontext des standardmäßigen Druckers ab und meldet den Benutzer die Auflösung des Druckers in Punkten pro Zoll.(Dieses Attribut der Funktionen des Druckers wird häufig als DPI.)

CPrintDialog dlg(FALSE);

if (!dlg.GetDefaults())
{
   AfxMessageBox(_T("You have no default printer!"));
}
else
{
   // attach to the DC we were given
   CDC dc;
   dc.Attach(dlg.m_pd.hDC);

   // ask for the measurements
   int nHorz = dc.GetDeviceCaps(LOGPIXELSX);
   int nVert = dc.GetDeviceCaps(LOGPIXELSY);

   // almost always the same in both directions, but sometimes not!
   CString str;
   if (nHorz == nVert)
   {
      str.Format(_T("Your printer supports %d pixels per inch"), nHorz);
   }
   else
   {
      str.Format(_T("Your printer supports %d pixels per inch ")
         _T("horizontal resolution, and %d pixels per inch vertical ")
         _T("resolution"), nHorz, nVert);
   }

   // tell the user
   AfxMessageBox(str);

   // Note: no need to call Detach() because we want the CDC destructor
   // to call FreeDC() on the DC we borrowed from the common dialog
}

Anforderungen

Header: afxdlgs.h

Siehe auch

Referenz

CPrintDialog-Klasse

Hierarchien-Diagramm

CPrintDialog::m_pd

CPrintDialog::GetDeviceName

CPrintDialog::GetDriverName

CPrintDialog::GetPortName