CPageSetupDialog Sınıfı
Windows ortak OLE Sayfa Yapısı iletişim kutusu tarafından sağlanan hizmetleri, yazdırma kenar boşluklarını ayarlama ve değiştirme için ek destekle kapsüller.
Sözdizimi
class CPageSetupDialog : public CCommonDialog
Üyeler
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
CPageSetupDialog::CPageSetupDialog | Bir CPageSetupDialog nesne oluşturur. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CPageSetupDialog::CreatePrinterDC | Yazdırma için bir cihaz bağlamı oluşturur. |
CPageSetupDialog::D oModal | İletişim kutusunu görüntüler ve kullanıcının seçim yapmasına izin verir. |
CPageSetupDialog::GetDeviceName | Yazıcının cihaz adını döndürür. |
CPageSetupDialog::GetDevMode | Yazıcının geçerli DEVMODE değerini döndürür. |
CPageSetupDialog::GetDriverName | Yazıcı tarafından kullanılan sürücüyü döndürür. |
CPageSetupDialog::GetMargins | Yazıcının geçerli kenar boşluğu ayarlarını döndürür. |
CPageSetupDialog::GetPaperSize | Yazıcının kağıt boyutunu döndürür. |
CPageSetupDialog::GetPortName | Çıkış bağlantı noktası adını döndürür. |
CPageSetupDialog::OnDrawPage | Yazdırılan bir sayfanın ekran görüntüsünü işlemek için çerçeve tarafından çağrılır. |
CPageSetupDialog::P reDrawPage | Yazdırılan bir sayfanın ekran görüntüsünü işlemeden önce çerçeve tarafından çağrılır. |
Ortak Veri Üyeleri
Veri Akışı Adı | Açıklama |
---|---|
CPageSetupDialog::m_psd | Nesneyi özelleştirmek için kullanılan bir CPageSetupDialog yapı. |
Açıklamalar
Bu sınıf, Yazdırma Kurulumu iletişim kutusunun yerini alacak şekilde tasarlanmıştır.
Bir CPageSetupDialog
nesneyi kullanmak için önce oluşturucuyu CPageSetupDialog
kullanarak nesnesini oluşturun. İletişim kutusu oluşturulduktan sonra, iletişim kutusunun denetimlerinin değerlerini başlatmak için veri üyesindeki m_psd
herhangi bir değeri ayarlayabilir veya değiştirebilirsiniz. m_psd yapısı PAGESETUPDLG türündedir.
İletişim kutusu denetimlerini başlatdıktan sonra, iletişim kutusunu görüntülemek için üye işlevini çağırın DoModal
ve kullanıcının yazdırma seçeneklerini belirlemesine izin verin. DoModal
kullanıcının Tamam (IDOK) veya İptal (IDCANCEL) düğmesini seçerek seçmediğini döndürür.
IDOK döndürürse DoModal
, kullanıcının bilgi girişini almak için 'nin birkaç CPageSetupDialog
üye işlevini kullanabilir veya veri üyesine erişebilirsiniz m_psd
.
Not
Ortak OLE Sayfa Yapısı iletişim kutusu kapatıldıktan sonra, kullanıcı tarafından yapılan değişiklikler çerçeve tarafından kaydedilmez. Bu iletişim kutusundaki değerleri uygulamanın belgesi veya uygulama sınıfının üyesi gibi kalıcı bir konuma kaydetmek uygulamanın kendisine aittir.
Devralma Hiyerarşisi
CPageSetupDialog
Gereksinimler
Üst bilgi: afxdlgs.h
CPageSetupDialog::CPageSetupDialog
Nesne oluşturmak CPageSetupDialog
için bu işlevi çağır.
CPageSetupDialog(
DWORD dwFlags = PSD_MARGINS | PSD_INWININIINTLMEASURE,
CWnd* pParentWnd = NULL);
Parametreler
dwFlags
İletişim kutusunun ayarlarını özelleştirmek için kullanabileceğiniz bir veya daha fazla bayrak. Değerler bit düzeyinde OR işleci kullanılarak birleştirilebilir. Bu değerler aşağıdaki anlamlara sahiptir:
PSD_DEFAULTMINMARGINS Sayfa kenar boşlukları için izin verilen en düşük genişlikleri yazıcının minimumlarıyla aynı olacak şekilde ayarlar. PSD_MARGINS ve PSD_MINMARGINS bayrakları da belirtilirse bu bayrak yoksayılır.
PSD_INWININIINTLMEASURE Uygulanmadı.
PSD_MINMARGINS Sistemin sol, üst, sağ ve alt kenar boşlukları için izin verilen en düşük genişlikler olarak üyede
rtMinMargin
belirtilen değerleri kullanmasına neden olur. Sistem, kullanıcının belirtilen minimumdan küçük bir genişlik girmesini engeller. PSD_MINMARGINS belirtilmezse, sistem izin verilen en düşük genişlikleri yazıcı tarafından izin verilenlere ayarlar.PSD_MARGINS Kenar boşluğu denetim alanını etkinleştirir.
PSD_INTHOUSANDTHSOFINCHES İletişim kutusunun birimlerinin bir inçin 1/1000'i cinsinden ölçülmeye neden olur.
PSD_INHUNDREDTHSOFMILLIMETERS İletişim kutusunun birimlerinin milimetrenin 1/100'ünün ölçülmüş olmasına neden olur.
PSD_DISABLEMARGINS Kenar boşluğu iletişim kutusu denetimlerini devre dışı bırakır.
PSD_DISABLEPRINTER Yazıcı düğmesini devre dışı bırakır.
PSD_NOWARNING Varsayılan yazıcı olmadığında uyarı iletisinin görüntülenmesini engeller.
PSD_DISABLEORIENTATION Sayfa yönlendirme iletişim kutusu denetimini devre dışı bırakır.
PSD_RETURNDEFAULT Bir iletişim kutusu görüntülemeden sistem varsayılan yazıcısı için başlatılan DEVMODE ve DEVNAMES yapılarını döndürmeye neden olur
CPageSetupDialog
. hem hemhDevMode
dehDevNames
NULL olduğu varsayılır; aksi takdirde işlev bir hata döndürür. Sistem varsayılan yazıcısı eski bir yazıcı sürücüsü (Windows sürüm 3.0'dan önceki) tarafından destekleniyorsa, yalnızcahDevNames
null değeri döndürülür.hDevMode
PSD_DISABLEPAPER Kağıt seçimi denetimini devre dışı bırakır.
PSD_SHOWHELP İletişim kutusunun Yardım düğmesini göstermesine neden olur. Bu
hwndOwner
bayrak belirtilirse üye NULL olmamalıdır.PSD_ENABLEPAGESETUPHOOK içinde
lpfnSetupHook
belirtilen kanca işlevini etkinleştirir.PSD_ENABLEPAGESETUPTEMPLATE ve tarafından
hInstance
lpSetupTemplateName
tanımlanan iletişim kutusu şablon kutusunu kullanarak işletim sisteminin iletişim kutusunu oluşturmasına neden olur.PSD_ENABLEPAGESETUPTEMPLATEHANDLE Önceden yüklenmiş bir iletişim kutusu şablonu içeren bir veri bloğunun tanımlandığını
hInstance
gösterir. Bu bayrak belirtilirse sistem yoksayarlpSetupTemplateName
.PSD_ENABLEPAGEPAINTHOOK içinde
lpfnPagePaintHook
belirtilen kanca işlevini etkinleştirir.PSD_DISABLEPAGEPAINTING İletişim kutusunun çizim alanını devre dışı bırakır.
pParentWnd
İletişim kutusunun üst veya sahip işaretçisi.
Açıklamalar
İletişim kutusunu görüntülemek için DoModal işlevini kullanın.
Örnek
void CMyRichEditView::OnPageSetupDlg()
{
CPageSetupDialog psd(PSD_INTHOUSANDTHSOFINCHES | PSD_MARGINS |
PSD_ENABLEPAGEPAINTHOOK, this);
// Initialize margins
psd.m_psd.rtMargin.top = 1000;
psd.m_psd.rtMargin.left = 1250;
psd.m_psd.rtMargin.right = 1250;
psd.m_psd.rtMargin.bottom = 1000;
psd.m_psd.lpfnPagePaintHook = (LPPAGEPAINTHOOK)PaintHook;
if (IDOK == psd.DoModal())
{
// Propagate changes to the app
AfxGetApp()->SelectPrinter(psd.m_psd.hDevNames, psd.m_psd.hDevMode);
}
else
{
TRACE(_T("CommDlgExtendedError returned error %d from ")
_T("CPageSetupDialog::DoModal().\n"),
(int)CommDlgExtendedError());
}
}
CPageSetupDialog::CreatePrinterDC
DEVMODE ve DEVNAMES yapılarından bir yazıcı cihazı bağlamı oluşturur.
HDC CreatePrinterDC();
Dönüş Değeri
Yeni oluşturulan yazıcı cihazı bağlamı (DC) için tanıtıcı.
CPageSetupDialog::D oModal
Windows ortak OLE Sayfa Yapısı iletişim kutusunu görüntülemek ve kullanıcının yazdırma kenar boşlukları, kağıdın boyutu ve yönü ve hedef yazıcı gibi çeşitli yazdırma kurulumu seçeneklerini seçmesine izin vermek için bu işlevi çağırın.
virtual INT_PTR DoModal();
Dönüş Değeri
IDOK veya IDCANCEL. IDCANCEL döndürülürse, bir hata oluşup oluşmadığını belirlemek için Windows CommDlgExtendedError işlevini çağırın.
IDOK ve IDCANCEL, kullanıcının Tamam mı yoksa İptal düğmesini mi seçtiğini gösteren sabitlerdir.
Açıklamalar
Buna ek olarak, kullanıcı ağ konumu ve seçili yazıcıya özgü özellikler gibi yazıcı kurulum seçeneklerine erişebilir.
Yapının üyelerini m_psd
ayarlayarak çeşitli Sayfa Yapısı iletişim kutusu seçeneklerini başlatmak istiyorsanız, çağrısından DoModal
önce ve iletişim kutusu nesnesi oluşturulduğunda bunu yapmalısınız. çağrısı DoModal
yaptıktan sonra, kullanıcı tarafından iletişim kutusuna ayarları veya bilgi girişini almak için diğer üye işlevlerini çağırın.
Kullanıcı tarafından girilen geçerli ayarları yaymak istiyorsanız CWinApp::SelectPrinter çağrısı yapın. Bu işlev, nesneden CPageSetupDialog
bilgileri alır ve doğru özniteliklere sahip yeni bir yazıcı DC'sini başlatır ve seçer.
AfxGetApp()->SelectPrinter(psd.m_psd.hDevNames, psd.m_psd.hDevMode);
Örnek
CPageSetupDialog::CPageSetupDialog örneğine bakın.
CPageSetupDialog::GetDeviceName
Seçili durumdaki yazıcının adını almak için bu işlevi sonra DoModal
çağırın.
CString GetDeviceName() const;
Dönüş Değeri
Nesne tarafından CPageSetupDialog
kullanılan cihaz adı.
CPageSetupDialog::GetDevMode
Nesnenin yazıcı cihazı bağlamı hakkında bilgi almak için çağrısından DoModal
sonra bu işlevi çağırın CPageSetupDialog
.
LPDEVMODE GetDevMode() const;
Dönüş Değeri
Cihaz başlatma ve yazdırma sürücüsünün ortamı hakkında bilgi içeren DEVMODE veri yapısı. Windows SDK'sında açıklanan Windows GlobalUnlock işleviyle bu yapı tarafından alınan belleğin kilidini açmanız gerekir.
CPageSetupDialog::GetDriverName
Sistem tanımlı yazıcı aygıt sürücüsünün adını almak için DoModal'ı çağırdıktan sonra bu işlevi çağırın.
CString GetDriverName() const;
Dönüş Değeri
CString
Sistem tanımlı sürücü adını belirten bir.
Açıklamalar
CDC::CreateDC çağrısında değeri lpszDriverName
olarak tarafından GetDriverName
döndürülen nesneye bir işaretçi CString
kullanın.
CPageSetupDialog::GetMargins
Yazıcı cihaz sürücüsünün kenar boşluklarını almak için DoModal
çağrısından sonra bu işlevi çağırın.
void GetMargins(
LPRECT lpRectMargins,
LPRECT lpRectMinMargins) const;
Parametreler
lpRectMargins
Seçili durumdaki yazıcının yazdırma kenar boşluklarını açıklayan ( 1/1000 inç veya 1/100 mm) bir RECT yapısının veya CRect nesnesinin işaretçisi. Bu dikdörtgenle ilgilenmiyorsanız, bu parametre için NULL değerini geçirin.
lpRectMinMargins
Seçili durumdaki yazıcı için en düşük yazdırma kenar boşluklarını (1/1000 inç veya 1/100 mm cinsinden) açıklayan bir RECT
yapı veya CRect
nesne işaretçisi. Bu dikdörtgenle ilgilenmiyorsanız, bu parametre için NULL değerini geçirin.
CPageSetupDialog::GetPaperSize
Yazdırma için seçilen kağıdın boyutunu almak için bu işlevi çağırın.
CSize GetPaperSize() const;
Dönüş Değeri
Yazdırma için seçilen kağıdın boyutunu (1/1000 inç veya 1/100 mm cinsinden) içeren bir CSize nesnesi.
CPageSetupDialog::GetPortName
Şu anda seçili olan yazıcı bağlantı noktasının adını almak için çağrısından DoModal
sonra bu işlevi çağırın.
CString GetPortName() const;
Dönüş Değeri
Seçili durumdaki yazıcı bağlantı noktasının adı.
CPageSetupDialog::m_psd
Üyeleri iletişim kutusu nesnesinin özelliklerini depolayan PAGESETUPDLG türünde bir yapı.
PAGESETUPDLG m_psd;
Açıklamalar
Nesneyi CPageSetupDialog
oluşturdıktan sonra, üye işlevini çağırmadan DoModal
önce iletişim kutusunun çeşitli yönlerini ayarlamak için kullanabilirsinizm_psd
.
Veri üyesini m_psd
doğrudan değiştirirseniz, tüm varsayılan davranışları geçersiz kılarsınız.
PAGESETUPDLG yapısı hakkında daha fazla bilgi için bkz. Windows SDK'sı.
CPageSetupDialog::CPageSetupDialog örneğine bakın.
CPageSetupDialog::OnDrawPage
Yazdırılan bir sayfanın ekran görüntüsünü çizmek için çerçeve tarafından çağrılır.
virtual UINT OnDrawPage(
CDC* pDC,
UINT nMessage,
LPRECT lpRect);
Parametreler
pDC
Yazıcı cihazı bağlamı işaretçisi.
nMessage
Çizilmekte olan sayfanın alanını belirten bir ileti belirtir. Aşağıdakilerden biri olabilir:
sayfa alanının tamamını WM_PSD_FULLPAGERECT.
Geçerli minimum kenar boşluklarını WM_PSD_MINMARGINRECT.
Geçerli kenar boşluklarını WM_PSD_MARGINRECT.
Sayfanın İçeriğini WM_PSD_GREEKTEXTRECT.
WM_PSD_ENVSTAMPRECT Alanı bir posta pulu gösterimi için ayrılmıştır.
dönüş adresi gösterimi için WM_PSD_YAFULLPAGERECT Alanı. Bu alan, örnek sayfa alanının kenarlarına kadar uzanır.
lpRect
Çizim alanının koordinatlarını içeren bir CRect veya RECT nesnesinin işaretçisi.
Dönüş Değeri
İşlenmişse sıfır olmayan değer; aksi takdirde 0.
Açıklamalar
Bu resim daha sonra ortak OLE Sayfa Yapısı iletişim kutusunun bir parçası olarak görüntülenir. Varsayılan uygulama, bir metin sayfasının görüntüsünü çizer.
Görüntünün belirli bir alanının veya görüntünün tamamının çizimini özelleştirmek için bu işlevi geçersiz kılın. NMessage değerini denetleyen deyimleri olan case
bir switch
deyimi kullanarak bunu yapabilirsiniz. Örneğin, sayfa görüntüsünün içeriğinin işlenmesini özelleştirmek için aşağıdaki örnek kodu kullanabilirsiniz:
switch (nMessage)
{
case WM_PSD_GREEKTEXTRECT:
DrawMyImage(pDC, lpRect); //draws my special graphic
return 1;
default:
return CPageSetupDialog::OnDrawPage(pDC, nMessage, lpRect);
}
NMessage'ın her durumunu işlemeniz gerekmediğini unutmayın. Görüntünün bir bileşenini, görüntünün birkaç bileşenini veya alanın tamamını işlemeyi seçebilirsiniz.
CPageSetupDialog::P reDrawPage
Yazdırılan sayfanın ekran görüntüsünü çizmeden önce çerçeve tarafından çağrılır.
virtual UINT PreDrawPage(
WORD wPaper,
WORD wFlags,
LPPAGESETUPDLG pPSD);
Parametreler
wPaper
Kağıt boyutunu gösteren bir değer belirtir. Bu değer, DEVMODE yapısının açıklamasında listelenen DMPAPER_ değerlerden biri olabilir.
wFlags
Kağıdın veya zarfın yönünü ve yazıcının noktalı matris veya HPPCL (Hewlett Packard Yazıcı Denetim Dili) cihazı olup olmadığını gösterir. Bu parametre aşağıdaki değerlerden birine sahip olabilir:
0x001 Yatay modda kağıt (nokta matris)
0x003 Kağıdı yatay modda (HPPCL)
0x005 Dikey modda kağıt (nokta matris)
0x007 Dikey modda kağıt (HPPCL)
Zarfı yatay modda (HPPCL) 0x00b
Zarfı dikey modda 0x00d (nokta matris)
Zarfı yatay modda 0x019 (nokta matris)
Zarfı dikey modda 0x01f (nokta matris)
pPSD
Bir PAGESETUPDLG
yapı işaretçisi. PAGESETUPDLG hakkında daha fazla bilgi için bkz. Windows SDK'sı.
Dönüş Değeri
İşlenmişse sıfır olmayan değer; aksi takdirde 0.
Açıklamalar
Resmin çizimini özelleştirmek için bu işlevi geçersiz kılın. Bu işlevi geçersiz kılar ve TRUE döndürürseniz, görüntünün tamamını çizmeniz gerekir. Bu işlevi geçersiz kılar ve FALSE döndürürseniz, varsayılan görüntünün tamamı çerçeve tarafından çizilir.