Yazdırılan sayfası ayarlama

Bir kullanıcı yazdırılan sayfanın kağıt türü, kağıt kaynağı, sayfa yönlendirmesi ve sayfa kenar boşlukları gibi özniteliklerini seçebilirsiniz, böylece Sayfa yapısı iletişim kutusunu görüntüler örnek kod açıklanmıştır. Örnek kod öncelikle bir pagesetupdlg yapısı başlatır ve sonra iletişim kutusunu görüntülemek için PageSetupDlg işlevini çağırır.

Bu örnek, bayrakları üye PSD_MARGINS bayrağını ayarlar ve rtMargin üye ilk kenar boşluğu değerleri belirtmek için kullanır. İletişim kutusu içinde binde duyarlığıyla inç kenar boşluğu boyutlarını ifade sağlamak için PSD_INTHOUSANDTHSOFINCHES bayrağını ayarlar.

Giriş örnek kod hDevMode ve hDevNames üye null olarak ayarlar. Fonksiyon true dönerse, işlev bu üyelerin tanıtıcıları kullanır devmode ve devnames yapıları kullanıcı girişi içeren ve yazıcı hakkında bilgi. Çıkış seçili yazıcıya gönderilmek üzere hazırlamak için bu bilgileri kullanabilirsiniz.

Örnek de çizim örnek sayfa içeriği özelleştirmek bir PagePaintHook kanca işlemi sağlar.

Pagesetupdlg psd;    / / ortak iletişim kutusu yapısı
hwnd hwnd;           / / sahibi penceresi

/ / pagesetupdlg başlatılamadı
ZeroMemory (amp; psd, sizeof(PAGESETUPDLG));
PSD.lStructSize = sizeof(PAGESETUPDLG);
PSD.hwndOwner = hwnd;
PSD.hDevMode = null; / / Özgür ya da hDevMode depolamak için unutmayın.
PSD.hDevNames = null; / / Özgür ya da saklamak için unutmayın
                  hDevNames.
PSD.Bayrak = PSD_INTHOUSANDTHSOFINCHES | PSD_MARGINS | 
                  PSD_ENABLEPAGEPAINTHOOK; 
PSD.rtMargin.Top = 1000;
PSD.rtMargin.Left = 1250;
PSD.rtMargin.right = 1250;
PSD.rtMargin.Bottom = 1000;
PSD.lpfnPagePaintHook = PaintHook;

Eğer (PageSetupDlg(&psd) == true) {}
    / / kağıt boyutu ve kenar boşluğu değerlerini buraya check
} 

Aşağıdaki örnek, örnek sayfa alanının kenar dikdörtgen çizer bir örnek PagePaintHook kanca işlemi gösterir.:

Bool geri PaintHook (hwnd hwndDlg, UINT uMsg, wparam wParam, lparam lParam) {lprect lprc; 
    colorref crMargRect; 
    hdc hdc, hdcOld; 
 
    switch (uMsg) {/ / kenar dikdörtgen çizim. 
        Case WM_PSD_MARGINRECT: hdc (hdc) wParam; = 
            lprc (lprect) lParam; = 
 
            / / Sistem vurgu rengini olsun. 
            crMargRect = GetSysColor(COLOR_HIGHLIGHT); 
 
            / / Sistem vurgu rengini bir çizgi-nokta kalem oluşturmak ve / / örnek sayfasını dc seçin. 
            hdcOld = NesneSeç (hdc, CreatePen (ps_dashdot, 5, crMargRect)); 
 
            / / Kenar dikdörtgen çizin. 
            Dikdörtgen (hdc, lprc-gt; sol, lprc - > tepe, lprc - > sağ, lprc - > alt); 
 
            / / dc önceki kalemi geri. 
            NesneSeç (hdc, hdcOld); 
            true döndürür; 
 
        Varsayılan: false; dönüş 
    } return true; 
} 

 

Index