Fonction de rappel LPSETUPHOOKPROC (commdlg.h)
Fonction de rappel définie par l’application ou définie par la bibliothèque utilisée avec la fonction PrintDlg . La procédure de hook reçoit des messages ou des notifications destinés à la procédure de boîte de dialogue par défaut de la boîte de dialogue Configuration d’impression .
Le type LPSETUPHOOKPROC définit un pointeur vers cette fonction de rappel. SetupHookProc est un espace réservé pour le nom de fonction défini par l’application ou défini par la bibliothèque.
Syntaxe
LPSETUPHOOKPROC Lpsetuphookproc;
UINT_PTR Lpsetuphookproc(
HWND unnamedParam1,
UINT unnamedParam2,
WPARAM unnamedParam3,
LPARAM unnamedParam4
)
{...}
Paramètres
unnamedParam1
Handle de la boîte de dialogue Configuration d’impression pour laquelle le message est destiné.
unnamedParam2
Identificateur du message reçu.
unnamedParam3
Informations supplémentaires sur le message. La signification exacte dépend de la valeur du paramètre unnamedParam2 .
unnamedParam4
Informations supplémentaires sur le message. La signification exacte dépend de la valeur du paramètre unnamedParam2 .
Valeur retournée
Si la procédure de hook retourne zéro, la procédure de boîte de dialogue par défaut traite le message.
Si la procédure de hook retourne une valeur différente de zéro, la procédure de boîte de dialogue par défaut ignore le message.
Remarques
La boîte de dialogue Configuration d’impression a été remplacée par la boîte de dialogue Mise en page , qui doit être utilisée par les nouvelles applications. Toutefois, à des fins de compatibilité, la fonction PrintDlg continue de prendre en charge l’affichage de la boîte de dialogue Configuration d’impression . Vous pouvez fournir une procédure de crochet SetupHookProc pour la boîte de dialogue Imprimer le programme d’installation afin de traiter les messages ou les notifications destinés à la procédure de boîte de dialogue.
Pour activer la procédure de hook, utilisez la structure PRINTDLG que vous avez passée à la fonction de création de dialogue. Spécifiez l’adresse de la procédure de crochet dans le membre lpfnSetupHook et spécifiez l’indicateur PD_ENABLESETUPHOOK dans le membre Flags .
La procédure de boîte de dialogue par défaut traite le message WM_INITDIALOG avant de le passer à la procédure de hook. Pour tous les autres messages, la procédure de crochet reçoit d’abord le message. Ensuite, la valeur de retour de la procédure de hook détermine si la procédure de dialogue par défaut traite le message ou l’ignore.
Si la procédure de crochet traite le message WM_CTLCOLORDLG , elle doit retourner une poignée de pinceau valide pour peindre l’arrière-plan de la boîte de dialogue. En général, si la procédure de crochet traite un message WM_CTLCOLOR* , elle doit retourner une poignée de pinceau valide pour peindre l’arrière-plan du contrôle spécifié.
N’appelez pas la fonction EndDialog à partir de la procédure de hook. Au lieu de cela, la procédure de crochet peut appeler la fonction PostMessage pour publier un message WM_COMMAND avec la valeur IDABORT dans la procédure de boîte de dialogue. La publication d’IDABORT ferme la boîte de dialogue et entraîne le retour de la fonction de boîte de dialogue FALSE. Si vous avez besoin de savoir pourquoi la procédure de hook a fermé la boîte de dialogue, vous devez fournir votre propre mécanisme de communication entre la procédure de hook et votre application.
Vous pouvez sous-classer les contrôles standard d’une boîte de dialogue commune. Toutefois, la procédure de boîte de dialogue peut également sous-classer les contrôles. Pour cette raison, vous devez effectuer des contrôles de sous-classe lorsque votre procédure de hook traite le message WM_INITDIALOG . Cela garantit que votre procédure de sous-classe reçoit les messages spécifiques au contrôle avant la procédure de sous-classe définie par la procédure de boîte de dialogue.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | commdlg.h (inclure Windows.h) |
Voir aussi
Bibliothèque de boîtes de dialogue commune
Conceptuel
Référence