CPrintDialog::GetDefaults
대화 상자를 표시 하지 않고 기본 프린터의 장치 기본값을 검색 합니다.
BOOL GetDefaults( );
반환 값
함수가 성공 하면 0이 아닌. 그렇지 않으면 0입니다.
설명
검색된 한 값에 배치 되는 m_pd 구조.
호출에 따라서는이 함수를 호출 하는 생성자 에 CPrintDialog 와 bPrintSetupOnly 설정 FALSE.이러한 경우 프린터 DC 및 hDevNames 및 hDevMode (두 핸들 위치에 m_pd 데이터 멤버) 자동으로 할당 됩니다.
경우 생성자에 대 한 CPrintDialog 호출 된 bPrintSetupOnly 설정 FALSE,이 함수 에서만 돌아갑니다 hDevNames 및 hDevMode (에 m_pd.hDevNames 및 m_pd.hDevMode)는 호출자에 게 있지만 프린터 DC에도 반환 합니다 m_pd.hDC.DC 프린터를 삭제 하 고 Windows를 호출 하는 호출자의 책임입니다 GlobalFree 함수에 완료 되 면 핸들에는 CPrintDialog 개체입니다.
예제
이 코드 단편 기본 프린터 장치 컨텍스트를 가져옵니다 및 해상도 인치 당 도트에서 프린터의 사용자에 게 보고 합니다.(프린터의 기능을이 특성으로 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
}
요구 사항
헤더: afxdlgs.h