Pomocou hárka vlastností tlač

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

Index