CPrintDialog::GetDefaults
Получает значения по умолчанию устройства по умолчанию принтер без отображения диалогового окна.
BOOL GetDefaults( );
Возвращаемое значение
Ненулевой если функция была успешна; в противном случае – значение 0.
Заметки
Полученные значения размещаются в структуре m_pd.
В некоторых случаях вызов этого конструктор вызывать функции для CPrintDialog с bPrintSetupOnly, для FALSE.В этих случаях контроллер домена принтера и hDevNames и hDevMode (2 маркера, расположенного в элементе данных m_pd ) автоматически выделены.
Если вызывающий конструктор для CPrintDialog с bPrintSetupOnly, равными FALSE, данная функция не будет возвращать только hDevNames и hDevMode (расположенные в m_pd.hDevNames и m_pd.hDevMode), вызвавшему, но также возвращает контроллер домена принтера в m_pd.hDC.Вызывающий объект отвечает за удаление контроллера домена принтера и вызова функции Windows GlobalFree на дескрипторах после завершения работы с объектом CPrintDialog.
Пример
Этот фрагмент кода получает контекст устройства и отчетов по умолчанию принтера пользователю разрешение принтера в точках на дюйм.(Этот атрибут возможностей принтера часто называют ТОЧЕК НА ДЮЙМ).
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
}
Требования
Header: afxdlgs.h