CPrintDialog::GetDefaults
Pobiera ustawienia domyślne urządzenia drukarki domyślnej bez wyświetlania okna dialogowego.
BOOL GetDefaults( );
Wartość zwracana
Niezerowa, jeśli funkcja zakończyła się pomyślnie; 0 inaczej.
Uwagi
Wartości pobierane są umieszczane w m_pd struktury.
W niektórych przypadkach będzie wywoływać wywołanie funkcji konstruktora dla CPrintDialog z bPrintSetupOnly ustawiona na FALSE.W tych przypadkach drukarki DC i hDevNames i pole hDevMode (dwa uchwyty znajdujące się w m_pd Członkowskich danych) są przydzielane automatycznie.
Jeśli konstruktora dla CPrintDialog została wywołana z bPrintSetupOnly ustawiona na FALSE, funkcja ta nie będzie zwracać tylko hDevNames i pole hDevMode (znajduje się w m_pd.hDevNames i m_pd.hDevMode) do wywołującego, ale zwróci drukarki DC w m_pd.hDC.Spoczywa wywołującego usunąć drukarkę DC i wywołać Windows GlobalFree funkcja w uchwyty po zakończeniu pracy z CPrintDialog obiektu.
Przykład
Ten fragment kodu pobiera kontekstu urządzenia drukarki domyślnej i raporty użytkownika rozdzielczość drukarki w punktach na cal.(Ten atrybut możliwości drukarki często nazywa się 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
}
Wymagania
Nagłówek: afxdlgs.h