Méthode IPrintDialogCallback::HandleMessage (commdlg.h)
Appelé par PrintDlgEx pour permettre à votre application de gérer les messages envoyés à la boîte de dialogue enfant dans la partie inférieure de la page Général de la feuille des propriétés d’impression. La boîte de dialogue enfant contient des contrôles similaires à ceux de la boîte de dialogue Imprimer .
Syntaxe
HRESULT HandleMessage(
HWND hDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam,
LRESULT *pResult
);
Paramètres
hDlg
Type : HWND
Handle de la boîte de dialogue enfant dans la partie inférieure de la page Général .
uMsg
Type : UINT
Identificateur du message reçu.
wParam
Type : WPARAM
Informations supplémentaires sur le message. La signification exacte dépend de la valeur du paramètre uMsg .
lParam
Type : LPARAM
Informations supplémentaires sur le message. La signification exacte dépend de la valeur du paramètre uMsg .
Si le paramètre uMsg indique le message WM_INITDIALOG , lParam est un pointeur vers une structure PRINTDLGEX contenant les valeurs spécifiées lors de la création de la feuille de propriétés.
pResult
Type : LRESULT*
Indique le résultat à retourner par la procédure de boîte de dialogue pour le message. La valeur pointée vers doit être TRUE si vous traitez le message. Sinon, elle doit être FALSE ou une valeur appropriée en fonction du type de message.
Valeur retournée
Type : HRESULT
Retournez S_OK si votre implémentation IPrintDialogCallback::HandleMessage a géré le message. Dans ce cas, la fonction PrintDlgEx n’effectue aucune gestion des messages par défaut.
Retournez S_FALSE si vous souhaitez que PrintDlgEx effectue sa gestion des messages par défaut.
Notes
Pour les messages de notification transmis par le message WM_NOTIFY , vous devez utiliser la fonction SetWindowLong avec la valeur DWL_MSGRESULT pour définir une valeur de retour. Lorsque vous appelez SetWindowLong, utilisez GetParent(hDlg) pour définir la valeur DWL_MSGRESULT de la page Général , qui est le parent de la fenêtre enfant.
La procédure de boîte de dialogue par défaut de la fenêtre enfant dans la partie inférieure de la page Général traite le message WM_INITDIALOG avant de le transmettre à la méthode HandleMessage . Pour tous les autres messages envoyés à la fenêtre enfant, HandleMessage reçoit d’abord le message. Ensuite, la valeur de retour HandleMessage détermine si la procédure de boîte de dialogue par défaut traite le message ou l’ignore.
Si HandleMessage traite le message WM_CTLCOLORDLG , il 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 HandleMessage traite un message WM_CTLCOLOR* , il doit retourner un handle de pinceau valide pour peindre l’arrière-plan du contrôle spécifié.
N’appelez pas la fonction EndDialog à partir de la méthode HandleMessage . Au lieu de cela, HandleMessage 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 feuille de propriétés d’impressionet entraînele retour de PD_RESULT_CANCEL dans le membre dwResultAction de la structure PRINTDLGEX . Si vous avez besoin de savoir pourquoi HandleMessage a fermé la boîte de dialogue, vous devez fournir votre propre mécanisme de communication entre la méthode HandleMessage et votre application.
Vous pouvez sous-classer les contrôles standard de la boîte de dialogue enfant dans la partie inférieure de la page Général . Ces contrôles standard sont similaires à ceux de la boîte de dialogue Imprimer . Toutefois, la procédure de boîte de dialogue par défaut peut également sous-classer les contrôles. Pour cette raison, vous devez sous-classer les contrôles lorsque HandleMessage traite le message WM_INITDIALOG . Cela garantit que votre procédure de sous-classe reçoit des 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
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) |
DLL | Comdlg32.dll |
Voir aussi
Bibliothèque de boîtes de dialogue commune
Conceptuel
Autres ressources
Référence