[.net2] messagebox étendue (par mécanisme de hook)

Description

Si certains d'entres vous ce demande comment personnaliser les boites de dialogues MessageBox, voici une source faite d'une classe statique répondant à cette question.

Le mécanisme employé est simple, on met en place un système de crochetage (Hook) sur notre fenêtre de MessageBox que l'on désire personnaliser.
Avant la l'affichage de celle-ci la fenêtre reçoit le message WM_INITDIALOG, c'est à ce moment là que l'on va effectuer les modifs. sur les objets enfants que contient la MessageBox.

Pour cette démo, je modifie uniquement la police d'écran et y ajoute un petit plus la fermeture de la MessageBox liée à un timer.
(Vous verrez qu'il faut revoir toutes les dimensions/alignement du label message, des boutons suivant la taille de la police, de la fenetre par la suite...)

Point négatif: Avec une îcone le message affiché est à moitié masqué et pas réussi à appliquer une couleur au texte du message.
Info: Pour la couleur il faut capturer le message WM_CTLCOLORSTATIC, une fois dedans, modifier la couleur de la police avec SetTextColor(handle du texte dans le label statique). (tester mais sans succès, pas chercher plus loin malheureusement).

Modifiez la police dans les boutons, icones perso, case à cocher, inverser la position du message et des boutons(message en bas, boutons en haut), etc...Si vous avez envie de completer cette MessageBox Etendue, ce n'est pas les idées qui manquent.

(Source commentée)

Conclusion :


CSharpiens à vos claviers si vous souhaitez enrichir cette classe ;)
Notes, commentaires sont les bienvenues comme toujours :)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.