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;
}