[Je to predbežné dokumentácie a s výhradou zmeniť.]
Táto téma popisuje vzorového kódu, ktorý zobrazí hárok vlastností tlače , takže používateľ môže vybrať možnosti pre tlač dokumentu. Vzorového kódu najprv alokuje a inicializuje PRINTDLGEX štruktúru, potom zavolá funkciu PrintDlgEx zobrazte hárok vlastností.
Vzorového kódu nastaví príznak PD_RETURNDC vlajky členských PRINTDLG štruktúru. To spôsobuje PrintDlgEx funkcia vrátiť kontextový popisovač zariadenia pre vybratú tlačiareň hDC člena. Môžete použiť rukoväť vo funkciách ako sú DrawText , že vykresliť výstup odoslané na tlačiareň.
Na vstup vzorového kódu nastaví členov parameter hDevMode a hDevNames na hodnotu NULL. Ak funkcia vráti S_OK, 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.
Po ukončení tlač operácie vzorového kódu uvoľní hodnoty DEVMODE a DEVNAMES medzipamäte a vyzýva DeleteDC funkciu odstrániť zariadenie kontext.
(HRESULT) DisplayPrintPropertySheet
HWND hWnd / / okna, že vlastní hárok vlastností
)
{
Hodnota HRESULT hResult;
LPPRINTDLGEX pPDX = NULL;
LPPRINTPAGERANGE pPageRanges = NULL;
/ / Prideliť PRINTDLGEX štruktúru.
pPDX = (LPPRINTDLGEX) GlobalAlloc (GPTR, sizeof(PRINTDLGEX));
Ak (! pPDX)
návrat E_OUTOFMEMORY;
/ / Prideliť zprovoznit PRINTPAGERANGE štruktúry.
pPageRanges = (LPPRINTPAGERANGE) GlobalAlloc (GPTR, 10 * sizeof(PRINTPAGERANGE));
Ak (! pPageRanges)
návrat E_OUTOFMEMORY;
/ / Inicializovať štruktúra PRINTDLGEX.
pPDX gt; lStructSize = sizeof(PRINTDLGEX);
pPDX - > hwndOwner = hWnd;
pPDX - > parameter hDevMode = NULL;
pPDX - > hDevNames = NULL;
pPDX - > hDC = NULL;
pPDX - > Flags = PD_RETURNDC | PD_COLLATE;
pPDX - > Flags2 = 0;
pPDX - > ExclusionFlags = 0;
pPDX - > nPageRanges = 0;
pPDX - > nMaxPageRanges = 10;
pPDX - > lpPageRanges = pPageRanges;
pPDX - > nMinPage = 1;
pPDX - > nMaxPage = 1000;
pPDX - > nCopies = 1;
pPDX - > hInstance = 0;
pPDX - > lpPrintTemplateName = NULL;
pPDX - > lpCallback = NULL;
pPDX - > nPropertyPages = 0;
pPDX - > lphPropertyPages = NULL;
pPDX - > nStartPage = START_PAGE_GENERAL;
pPDX - > dwResultAction = 0;
/ / Vyvolať tlačiť hárok vlastností.
hodnota hResult = PrintDlgEx(pPDX);
Ak ((hResult == S_OK) & &
pPDX - > dwResultAction == PD_RESULT_PRINT) {
/ / Užívateľ klikne na tlačidlo Tlačiť, tak
/ / DC a iné informácie vrátené / / PRINTDLGEX štruktúru chcete vytlačiť dokument
}
Ak (pPDX - > hDC! = NULL) DeleteDC (pPDX - > hDC);
Ak (pPDX - > parameter hDevMode! = NULL) GlobalFree (pPDX - > parameter hDevMode);
Ak (pPDX - > hDevNames! = NULL) GlobalFree (pPDX - > hDevNames);
Vráti hResult;
}