PRINTDLGW, structure (commdlg.h)
Contient des informations que la fonction PrintDlg utilise pour initialiser la boîte de dialogue Imprimer. Une fois que l’utilisateur ferme la boîte de dialogue, le système utilise cette structure pour retourner des informations sur les sélections de l’utilisateur.
Syntaxe
typedef struct tagPDW {
DWORD lStructSize;
HWND hwndOwner;
HGLOBAL hDevMode;
HGLOBAL hDevNames;
HDC hDC;
DWORD Flags;
WORD nFromPage;
WORD nToPage;
WORD nMinPage;
WORD nMaxPage;
WORD nCopies;
HINSTANCE hInstance;
LPARAM lCustData;
LPPRINTHOOKPROC lpfnPrintHook;
LPSETUPHOOKPROC lpfnSetupHook;
LPCWSTR lpPrintTemplateName;
LPCWSTR lpSetupTemplateName;
HGLOBAL hPrintTemplate;
HGLOBAL hSetupTemplate;
} PRINTDLGW, *LPPRINTDLGW;
Membres
lStructSize
Type : DWORD
Taille de la structure, en octets.
hwndOwner
Type : HWND
Handle de la fenêtre propriétaire de la boîte de dialogue. Ce membre peut être n’importe quel handle de fenêtre valide, ou il peut être null si la boîte de dialogue n’a aucun propriétaire.
hDevMode
Type : HGLOBAL
Handle vers un objet mémoire globale mobile qui contient une structure DEVMODE. Si
Si hDevMode est NULL en entrée, PrintDlg alloue de la mémoire pour la structure DEVMODE, initialise ses membres pour indiquer l’entrée de l’utilisateur et retourne un handle qui l’identifie.
Si le pilote de périphérique de l’imprimante spécifiée ne prend pas en charge les modes d’appareil étendus, hDevMode est NULL quand PrintDlg retourne.
Si le nom de l’appareil (spécifié par l'dmDeviceName membre de la structure DEVMODE) n’apparaît pas dans la section [devices] de WIN. INI, PrintDlg retourne une erreur.
Pour plus d’informations sur les hDevMode
hDevNames
Type : HGLOBAL
Handle vers un objet mémoire globale mobile qui contient une structure DEVNAMES. Si
Le membre hDevNames peut être NULL, auquel cas PrintDlg alloue de la mémoire pour la structure DEVNAMES, initialise ses membres pour indiquer l’entrée de l’utilisateur et retourne un handle qui l’identifie.
Pour plus d’informations sur les hDevMode
hDC
Type : HDC
Handle vers un contexte d’appareil ou un contexte d’informations, selon que les indicateurs membre spécifient l’indicateur _RETURNDC ou PC_RETURNIC. Si aucun indicateur n’est spécifié, la valeur de ce membre n’est pas définie. Si les deux indicateurs sont spécifiés, _RETURNDC a la priorité.
Flags
Type : DWORD
Initialise la boîte de dialogue Imprimer. Lorsque la boîte de dialogue est retournée, elle définit ces indicateurs pour indiquer l’entrée de l’utilisateur. Ce membre peut être une ou plusieurs des valeurs suivantes.
Valeur | Signification |
---|---|
|
Indicateur par défaut qui indique que la case d’option Tout est initialement sélectionnée. Cet indicateur est utilisé comme espace réservé pour indiquer que les indicateurs _PAGENUMS et _SELECTION ne sont pas spécifiés. |
|
Si cet indicateur est défini, la case Collate est cochée.
Si cet indicateur est défini lorsque la fonction PrintDlg retourne, l’application doit simuler le classement de plusieurs copies. Pour plus d’informations, consultez la description de l’indicateur de _USEDEVMODECOPIESANDCOLLATE. Voir _NOPAGENUMS. |
|
Désactive la case à cocher Imprimer dans le fichier. |
|
Active la procédure de hook spécifiée dans le membre lpfnPrintHook. Cela active la procédure de raccordement pour la boîte de dialogue Imprimer. |
|
Indique que les membres |
|
Indique que le membre hPrintTemplate identifie un bloc de données qui contient un modèle de boîte de dialogue préchargé. Ce modèle remplace le modèle par défaut de la boîte de dialogue Imprimer. Le système ignore le membre lpPrintTemplateName si cet indicateur est spécifié. |
|
Active la procédure de hook spécifiée dans le membre lpfnSetupHook. Cela active la procédure de raccordement pour la boîte de dialogue Configuration d’impression. |
|
Indique que les membres hInstance et lpSetupTemplateName spécifient un remplacement pour le modèle de boîte de dialogue configuration d’impression par défaut. |
|
Indique que le membre hSetupTemplate identifie un bloc de données qui contient un modèle de boîte de dialogue préchargé. Ce modèle remplace le modèle par défaut de la boîte de dialogue Configuration d’impression. Le système ignore le membre lpSetupTemplateName si cet indicateur est spécifié. |
|
Masque la case à cocher Imprimer dans le fichier. |
|
Masque et désactive le bouton Réseau. |
|
Désactive la case d’option Pages et les contrôles d’édition associés. En outre, la case Collate s’affiche dans la boîte de dialogue. |
|
Désactive la case d’option Sélection. |
|
Empêche l’affichage du message d’avertissement lorsqu’il n’existe aucune imprimante par défaut. |
|
Si cet indicateur est défini, la case d’option Pages est sélectionnée. Si cet indicateur est défini lorsque la fonction PrintDlg retourne, les nFromPage et les membres nToPage indiquent les pages de début et de fin spécifiées par l’utilisateur. |
|
Provoque l’affichage du système dans la boîte de dialogue Configuration d’impression plutôt que dans la boîte de dialogue Imprimer. |
|
Si cet indicateur est défini, la case à cocher Imprimer dans fichier est cochée. Si cet indicateur est défini lorsque la fonction PrintDlg |
|
Provoque printDlg retourner un contexte d’appareil correspondant aux sélections effectuées par l’utilisateur dans la boîte de dialogue. Le contexte de l’appareil est retourné dans hDC . |
|
Si cet indicateur est défini, la fonction PrintDlg n’affiche pas la boîte de dialogue. Au lieu de cela, il définit les membres |
|
Similaire à l’indicateur _RETURNDC, sauf que cet indicateur retourne un contexte d’information plutôt qu’un contexte d’appareil. Si aucun _RETURNDC ni _RETURNIC n’est spécifié, hDC n’est pas défini sur la sortie. |
|
Si cet indicateur est défini, la case d’option Sélection est sélectionnée. Si aucun _PAGENUMS ni _SELECTION n’est défini, la case d’option Tout est sélectionnée. |
|
Provoque l’affichage de la boîte de dialogue bouton Aide. Le membre |
|
Identique à _USEDEVMODECOPIESANDCOLLATE. |
|
Cet indicateur indique si votre application prend en charge plusieurs copies et classements. Définissez cet indicateur sur l’entrée pour indiquer que votre application ne prend pas en charge plusieurs copies et classements. Dans ce cas, le nCopies membre de la structure PRINTDLG retourne toujours 1 et _COLLATE n’est jamais défini dans le membre Flags.
Si cet indicateur n’est pas défini, l’application est chargée d’imprimer et de rassembler plusieurs copies. Dans ce cas, le nCopies membre de la structure PRINTDLG indique le nombre de copies que l’utilisateur souhaite imprimer, et l’indicateur _COLLATE dans les indicateurs de membre indique si l’utilisateur souhaite le classement. Indépendamment de la définition de cet indicateur, une application peut déterminer à partir de nCopies et _COLLATE combien de copies afficher et s’il faut les imprimer. Si cet indicateur est défini et que le pilote d’imprimante ne prend pas en charge plusieurs copies, la Copies contrôle d’édition est désactivée. De même, si cet indicateur est défini et que le pilote d’imprimante ne prend pas en charge le classement, la case Collate est désactivée. Les dmCopies et membres dmCollate de la structure DEVMODE contiennent les copies et collent les informations utilisées par le pilote d’imprimante. Si cet indicateur est défini et que le pilote d’imprimante prend en charge plusieurs copies, la dmCopies membre indique le nombre de copies demandées par l’utilisateur. Si cet indicateur est défini et que le pilote d’imprimante prend en charge le classement, le membre problème connu sur Windows 2000/XP/2003 : Si cet indicateur n’est pas défini avant d’appeler printDlg, PrintDlg peut échanger nCopies et valeurs dmCopies lors de son retour. La solution de contournement pour ce problème est d’utiliser dmCopies si sa valeur est supérieure à 1, sinon, utilisez nCopies, pour obtenir le nombre réel de copies à imprimer lorsque PrintDlg retourne. |
Pour vous assurer que
Pour vous assurer que printDlg ou PrintDlgEx retourne les valeurs correctes dans nCopies et _COLLATE, définissez _RETURNDC = TRUE et _USEDEVMODECOPIESANDCOLLATE = FALSE. Ainsi, dmCopies est toujours 1 et dmCollate est toujours FALSE.
Sur Windows Vista et Windows 7, lorsque vous appelez
Lorsque vous effectuez des appels à GDI, vous devez ignorer la valeur de nCopies, considérer la valeur comme 1 et utiliser le HDC retourné pour éviter l’impression de copies en double.
nFromPage
Type : WORD
Valeur initiale du contrôle de modification de page de démarrage.
Lorsque printDlg retourne, nFromPage est la page de démarrage spécifiée par l’utilisateur. Si la case d’option Pages est sélectionnée lorsque l’utilisateur clique sur le bouton ok, PrintDlg définit l’indicateur de _PAGENUMS et ne retourne pas tant que l’utilisateur n’entre pas dans une valeur de page de départ comprise dans la plage de pages minimale à maximale.
Si la valeur d’entrée pour nFromPage ou nToPage est en dehors de la plage minimale/maximale, PrintDlg retourne une erreur uniquement si l’indicateur _PAGENUMS est spécifié ; sinon, elle affiche la boîte de dialogue, mais remplace la valeur hors plage par la valeur minimale ou maximale.
nToPage
Type : WORD
Valeur initiale du contrôle de modification de page de fin. Lorsque printDlg retourne, nToPage est la page de fin spécifiée par l’utilisateur. Si la case d’option Pages est sélectionnée lorsque l’utilisation clique sur le bouton ok, PrintDlg définit l’indicateur de _PAGENUMS et ne retourne pas tant que l’utilisateur n’entre pas dans une valeur de page de fin comprise dans la plage de pages minimale à maximale.
nMinPage
Type : WORD
Valeur minimale de la plage de pages spécifiée dans le De et À contrôles de modification de page. Si nMinPage est égal à nMaxPage, la case d’option Pages et les contrôles de modification de page de démarrage et de fin sont désactivés.
nMaxPage
Type : WORD
Valeur maximale de la plage de pages spécifiée dans le De et À contrôles de modification de page.
nCopies
Type : WORD
Nombre initial de copies pour le contrôle d’édition Copies
hInstance
Type : HINSTANCE
Si l’indicateur
lCustData
Type : LPARAM
Données définies par l’application que le système transmet à la procédure de raccordement identifiée par le membre
lpfnPrintHook
Type : LPPRINTHOOKPROC
Pointeur vers une procédure de hook
lpfnSetupHook
Type : LPSETUPHOOKPROC
Pointeur vers une procédure SetupHookProc qui peut traiter les messages destinés à la boîte de dialogue Configuration d’impression. Ce membre est ignoré, sauf si l’indicateur _ENABLESETUPHOOK est défini dans le membre Indicateurs.
lpPrintTemplateName
Type : LPCTSTR
Nom de la ressource de modèle de boîte de dialogue dans le module identifié par le membre hInstance. Ce modèle remplace le modèle de boîte de dialogue Imprimer par défaut. Ce membre est ignoré, sauf si l’indicateur _ENABLEPRINTTEMPLATE est défini dans le membre Indicateurs.
lpSetupTemplateName
Type : LPCTSTR
Nom de la ressource de modèle de boîte de dialogue dans le module identifié par le membre hInstance. Ce modèle remplace le modèle de boîte de dialogue configuration d’impression par défaut. Ce membre est ignoré, sauf si l’indicateur _ENABLESETUPTEMPLATE est défini dans le membre Indicateurs.
hPrintTemplate
Type : HGLOBAL
Si l’indicateur
hSetupTemplate
Type : HGLOBAL
Si l’indicateur
Remarques
Si hDevMode et hDevNames sont NULL, PrintDlg initialise la boîte de dialogue à l’aide de l’imprimante par défaut actuelle. Pour initialiser la boîte de dialogue d’une autre imprimante, utilisez le wDeviceOffset membre de la structure DEVNAMES pour spécifier le nom de l’imprimante.
Notez que le dmDeviceName membre de la structure DEVMODE spécifie également un nom d’imprimante. Toutefois, dmDeviceName est limité à 32 caractères et le nom wDeviceOffset n’est pas. Si les noms wDeviceOffset et dmDeviceName ne sont pas identiques, PrintDlg initialise la boîte de dialogue à l’aide de l’imprimante spécifiée par wDeviceOffset.
Si l’indicateur de
Note
L’en-tête commdlg.h définit PRINTDLG comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
serveur minimum pris en charge | Windows 2000 Server [applications de bureau uniquement] |
d’en-tête | commdlg.h (include Windows.h) |
Voir aussi
bibliothèque de boîtes de dialogue courante
conceptuelle
de référence