Nastavenie tlačenej strane

Táto téma popisuje vzorového kódu, ktorý zobrazuje dialógové okno Nastavenie strany , takže používateľ môže vybrať atribúty tlačenej stránky, napríklad typ papiera, zdroj papiera, orientáciu a okraje. Vzorového kódu najprv inicializuje PAGESETUPDLG štruktúra a potom zavolá funkciu PageSetupDlg na zobrazenie dialógového okna.

V tomto príklade nastaví príznak PSD_MARGINS v členských štátoch vlajok a používa rtMargin člen na určenie hodnoty počiatočná marža. Nastaví príznak PSD_INTHOUSANDTHSOFINCHES na zabezpečenie toho, že dialógovom okne vyjadruje rozpätie rozmery tisícin palca.

Na vstup vzorového kódu nastaví členov parameter hDevMode a hDevNames na hodnotu NULL. Ak funkcia vráti hodnotu TRUE, funkcia používa títo členovia vrátiť popisovače hodnoty DEVMODE a DEVNAMES konštrukciami obsahujúce vstupného užívateľa a informácie o tlačiarni. Tieto informácie môžete použiť na prípravu produkcie zaslať do vybranej tlačiarne.

Príklad umožňuje PagePaintHook príslušná procedúra prispôsobiť čerpania obsahu vzorka stránky.

PAGESETUPDLG psd;    / / spoločné dialógové okno štruktúra
HWND hwnd;           / / vlastník okno

/ / Inicializovať PAGESETUPDLG
ZeroMemory (amp; psd, sizeof(PAGESETUPDLG));
PSD.lStructSize = sizeof(PAGESETUPDLG);
PSD.hwndOwner = hwnd;
PSD.hDevMode = NULL; / / Nezabudnite zadarmo alebo uloženie parameter hDevMode.
PSD.hDevNames = NULL; / / Nezabudnite zadarmo alebo uloženie
                  hDevNames.
PSD.Vlajkami = 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;

Ak (PageSetupDlg(&psd) == TRUE) {
    / / skontrolovať papiera veľkosti a rozpätia hodnôt tu.
} 

Nasledujúci príklad ukazuje vzorky PagePaintHook príslušná procedúra, ktorý kreslí obdĺžnik rozpätie v stranovej oblasti vzorky:

Spätné volanie BOOL PaintHook (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {LPRECT lprc; 
    COLORREF crMargRect; 
    HDC hdc, hdcOld; 
 
    prepínač (uMsg) {/ / Kreslenie obdĺžnika rozpätie. 
        prípad WM_PSD_MARGINRECT: hdc = wParam (HDC); 
            lprc = lParam (LPRECT); 
 
            / / Získať farbu zvýraznenia systému. 
            crMargRect = GetSysColor(COLOR_HIGHLIGHT); 
 
            / / Create bodko-čiarkovaná pero farbu zvýraznenia systém a / / vyberte do DC vzorkovník. 
            hdcOld = VybraťObjekt (hdc, CreatePen (PS_DASHDOT,.5, crMargRect)); 
 
            / / Nakreslite obdĺžnik rozpätie. 
            Obdĺžnik (hdc, lprc gt; left, lprc - > nahor, lprc - > doprava, lprc - > spodnej); 
 
            / / Obnovenie predchádzajúcich pero Dunajskej komisie. 
            VybraťObjekt (hdc, hdcOld); 
            Vráti hodnotu pravda; 
 
        predvolené: vráti FALSE; 
    } Vráti hodnotu pravda; 
} 
 

Index