הצגת תיבת הדו-שיח הדפסה

נושא זה מתאר דוגמה של קוד מציגה תיבת דו-שיח הדפסה כך המשתמש יכול לבחור אפשרויות הדפסה של מסמך. הקוד לדוגמה תחילה אתחול מבנה PRINTDLG , ולאחר מכן קורא את הפונקציה PrintDlg כדי להציג את תיבת הדו-שיח.

דוגמה זו מגדירה את דגל PD_RETURNDC חבר בדגלים של מבנה PRINTDLG . פעולה זו גורמת PrintDlg להחזיר את המזהה הייחודי של הקשר ההתקן עבור המדפסת שנבחרה חבר hDC . באפשרותך להשתמש נקודת האחיזה לעיבוד פלט המדפסת.

הקלט, הקוד לדוגמה מגדיר את החברים hDevMode ו- hDevNames ל- NULL. אם הפונקציה מחזירה TRUE, חברים אלה להחזיר את נקודות האחיזה DEVMODE ו DEVNAMES מבני המכיל של קלט המשתמש ומידע אודות המדפסת. באפשרותך להשתמש במידע זה כדי להכין את הפלט להישלח אל המדפסת שנבחרה.

PRINTDLG pd;
HWND hwnd;

/ / אתחול PRINTDLG
ZeroMemory (כח; pd, sizeof(PRINTDLG));
pd.lStructSize = sizeof(PRINTDLG);
pd.hwndOwner = hwnd;
pd.hDevMode = NULL;      / / אל תשכח חינם או לאחסן hDevMode.
pd.hDevNames = NULL;      / / אל תשכח חינם או לאחסן hDevNames.
pd.דגלים = PD_USEDEVMODECOPIESANDCOLLATE | PD_RETURNDC; 
pd.nCopies = 1;
pd.nFromPage = 0xFFFF; 
pd.nToPage = 0xFFFF; 
pd.nMinPage = 1; 
pd.nMaxPage = 0xFFFF; 

אם (PrintDlg(&pd) = = TRUE) {

/ / GDI קורא לעיבוד פלט. 

    / / מחק בקר קבוצת מחשבים לאחר סיום.
    DeleteDC(pd.hDC);
} 

Index