Поделиться через


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

См. также

Ссылки

Класс CPrintDialog

Диаграмма иерархии

CPrintDialog::m_pd

CPrintDialog::GetDeviceName

CPrintDialog::GetDriverName

CPrintDialog::GetPortName