Okno dialogowe Drukowanie

Okno dialogowe Drukuj umożliwia użytkownikowi wybranie opcji dla określonego zadania drukowania. Na przykład użytkownik można określić drukarkę, aby użyć, zakres stron do wydrukowania i liczba kopii.

Systemu Windows NT 5.0 i nowsze: Funkcję PrintDlgEx można użyć, aby wyświetlić arkusz właściwości drukowania , który zawiera Ogólne stronę zawierającą formanty, podobnego do okna dialogowego Drukuj . Arkusz właściwości również mogą mieć dodatkowe właściwości specyficzne dla aplikacji i specyficzne dla sterownika stron po stronie Ogólne.

Tworzenie i wyświetlanie okna dialogowego Drukuj inicjowanie struktura PRINTDLG i przekazywanie struktury funkcji PrintDlg.

Na następującej ilustracji pokazano typową okno dialogowe Drukuj.

Jeśli użytkownik kliknie przycisk OK , PrintDlg zwraca wartość TRUE i używa struktury PRINTDLG zwraca informacje na temat użytkownika zaznaczeń. Na przykład pole hDevMode i hDevNames członków zazwyczaj zwraca globalnej pamięci dojść do struktury DEVMODE i DEVNAMES. . Aby utworzyć kontekstu urządzenia lub kontekście informacji dla wybranej drukarki, można w tych struktur informacji.

Jeśli użytkownik anuluje okna dialogowego Drukuj lub wystąpi błąd, PrintDlg zwraca wartość FALSE. Można określić przyczynę błędu, używając funkcji CommDlgExtendedError do pobrania wartości błędu rozszerzonego.

W oknie dialogowym Drukuj zawiera grupę Zakres wydruku przycisków radiowych, które wskazują, czy użytkownik chce wydrukować wszystkie strony, zakres stron lub tylko zaznaczony tekst. Przed wywołaniem metody PrintDlg, można ustawić jedną z flag PD_ALLPAGES, PD_SELECTION lub PD_PAGENUMS, aby wskazać, który przycisk początkowo jest zaznaczone. Kiedy PrintDlg zwraca wartość TRUE, funkcja ustawia jedną z tych flag do wskazania zaznaczenia przez użytkownika. Jeśli PD_PAGENUMS jest ustawiona, członkowie nFromPage i nToPage struktury PRINTDLG zawierają początkowego i końcowego stron podanych przez użytkownika. Aby wyłączyć przycisk radiowy stron i jego skojarzony z i do formantów edycyjnych, należy ustawić flagę PD_NOPAGENUMS. Aby wyłączyć przycisk radiowy zaznaczenia , należy ustawić flagę PD_NOSELECTION.

Okno dialogowe zawiera formant edycyjny, w którym użytkownik może wpisać liczbę kopii do wydrukowania. Jeżeli członek pole hDevMode struktury PRINTDLG jest NIEZEROWA, członka dmCopies struktury DEVMODE określa wartość początkową dla tego formantu edycyjnego. Jeśli pole hDevMode ma wartość NULL, członek nCopies struktury PRINTDLG określa wartość początkową. Gdy PrintDlg zwraca, nCopies zazwyczaj wskazuje liczbę kopii, określony przez użytkownika. Jednak jeśli podczas tworzenia okna dialogowego Flaga PD_USEDEVMODECOPIESANDCOLLATE, nCopies jest zawsze ustawiany na 1 Zwrot i członek dmCopies DEVMODE wskazuje liczbę kopii do wydrukowania.

Pole wyboru Sortuj wskazuje, czy użytkownik chce sortowania stron, jeśli drukowane są wielu kopii. Jeśli zaznaczone zostało pole wyboru Sortuj , jest ustawiona flaga PD_COLLATE. Jeśli aplikacja nie obsługuje wielu kopii lub symulowanych sortowania, należy ustawić flagę PD_USEDEVMODECOPIESANDCOLLATE, członka flag struktury PRINTDLG . Wyłącza to pole wyboru Sortuj i Liczbę kopii formantu edycyjnego, jeśli sterownik drukarki nie obsługuje wielu kopii i sortowania.

Pole wyboru Drukuj do pliku wskazuje, czy użytkownik chce wysłać dane wyjściowe do pliku, a nie na drukarce. Można ustawić flagę PD_PRINTTOFILE, więc wstępnie zaznaczone zostało pole wyboru. Aby ukryć pole, należy ustawić flagę PD_HIDEPRINTTOFILE. Aby ją wyłączyć, należy ustawić flagę PD_DISABLEPRINTTOFILE. Jeśli użytkownik wybierze opcję Drukuj do pliku , PrintDlg ustawia flagę PD_PRINTTOFILE i zwraca "pliku:" przesunięcia wskazanych przez członka wOutputOffset struktury DEVNAMES. . Podczas wywołania funkcję StartDoc , aby uruchomić operację drukowania, określić to "pliku:" ciąg członka lpszOutput DOCINFO struktury. Określanie ten ciąg powoduje podsystemu drukowania do kwerendy użytkownika o nazwę pliku wyjściowego.

Domyślnie okno dialogowe Drukuj początkowo wyświetla informacje o bieżącej drukarki domyślnej. Można skierować ją aby wyświetlić informacje o innej drukarki zainstalowanych przez inicjowanie DEVMODE lub DEVNAMES struktura i przypisywanie globalnej pamięci uchwyt dla struktury członkowi pole hDevMode lub hDevNames . Nazwa urządzenia, którą można określić w dmDeviceName członkiem struktury DEVMODE lub członek wDriverOffset struktury DEVNAMES musi zidentyfikować urządzenie drukujące, również wymieniony w sekcji [Devices] ZWYCIĘSTWO.Plik INI. Zwraca błąd, jeśli urządzenia nie ma na liście, PrintDlg.

Można bezpośrednio PrintDlg do tworzenia kontekstu urządzenia lub informacji kontekstu dla drukarki przez ustawienie flagi PD_RETURNDC lub PD_RETURNIC w Państwa flag struktury PRINTDLG . Funkcja zwraca uchwyt kontekstu urządzenia lub informacji kontekstu członka hDC . Użycie flagi PD_RETURNDC, można użyć kontekstu urządzenia, aby generować dane wyjściowe drukarki.

Aby pobrać informacje o drukarce domyślnej bez wyświetlania okna dialogowego Drukuj , ustawiona Flaga PD_RETURNDEFAULT. W tym przypadku PrintDlg zwraca niezwłocznie po ustawieniu członków pole hDevMode i hDevNames do dojść do struktury zawierające informacje.

Domyślnie PrintDlg wyświetla okna komunikatów, jeśli wystąpią błędy. Na przykład funkcja wyświetli komunikat o błędzie, jeśli drukarki nie są zainstalowane. Aby zapobiec wyświetlaniu tych komunikatów ostrzegawczych funkcji, należy ustawić flagę PD_NOWARNING.

Index