CPrintDialog::GetDefaults是一種套用於電腦系統的函式。
函式功能,函式原型,返回值,備註,示例,
函式功能
檢索默認印表機的設備默認值,但不顯示對話框。
函式原型
BOOL GetDefaults ( );
返回值
如果函式運行成功,返回非零;否則,返回零。
備註
調用這個函式來檢索默認印表機的設備缺陷沒有顯示對話框。檢索到的值被放置在m_pd結構。
有時,對此函式的調用將調用 CPrintDialog 的 構造函式 和 bPrintSetupOnly 設定為 FALSE。 在這些情況下,)自動分配印表機DC和 hDevNames 和 hDevMode (位於 m_pd 數據成員的兩個控點。
如果 CPrintDialog 的構造函式調用與 bPrintSetupOnly 設定為 FALSE,此功能不僅將返回 hDevNames 和 hDevMode (位於 m_pd.hDevNames 和 m_pd.hDevMode)調用方,但是,還返回在 m_pd.hDC的印表機dc:date。 完成對 CPrintDialog 對象,則被調用方負責刪除印表機DC並對處理的Windows GlobalFree 功能。
示例
此代碼片段具有默認印表機的設備上下文和報表用戶印表機的解析度在點/英寸的。 (印表機的功能的此屬性通常稱為DPI。)
C++語言
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
}