Wyświetlanie okna dialogowego Drukuj

W tym temacie opisano przykładowy kod, który wyświetla okno dialogowe Drukuj użytkownika można wybrać opcji drukowania dokumentu. Przykładowy kod najpierw inicjuje strukturę PRINTDLG , a następnie wywołuje funkcję PrintDlg , aby wyświetlić okno dialogowe.

W tym przykładzie ustawia flagę PD_RETURNDC, członka flag struktury PRINTDLG . Powoduje to, że PrintDlg zwraca uchwyt kontekstu urządzenia dla wybranej drukarki członka hDC . Można renderować dane wyjściowe z drukarki uchwyt.

Na wejściu przykładowy kod ustawia pole hDevMode i hDevNames członków null. Jeśli funkcja zwraca TRUE, członkowie ci powrotu dojścia do DEVMODE i DEVNAMES struktur zawierających wejściowych użytkownika i informacje o drukarce. Te informacje można użyć do przygotowania danych wyjściowych do wysłania do wybranej drukarki.

PRINTDLG pd;
HWND hwnd;

/ / Inicjuj PRINTDLG
ZeroMemory (amp; pd, sizeof(PRINTDLG));
Pd.lStructSize = sizeof(PRINTDLG);
Pd.hwndOwner = hwnd;
Pd.hDevMode = NULL;      / / Nie zapomnij wolne lub przechowywania pole hDevMode.
Pd.hDevNames = NULL;      / / Nie zapomnij wolne lub przechowywania hDevNames.
Pd.Flagi = PD_USEDEVMODECOPIESANDCOLLATE | PD_RETURNDC; 
Pd.nCopies = 1;
Pd.nFromPage = 0xFFFF; 
Pd.nToPage = 0xFFFF; 
Pd.nMinPage = 1; 
Pd.nMaxPage = 0xFFFF; 

Jeżeli (PrintDlg(&pd) == TRUE) {}

/ / GDI wymaga przedstawiania danych wyjściowych. 

    / / Delete DC po wykonaniu.
    DeleteDC(pd.hDC);
} 

Index