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