Comment modifier appel à être le blocage et retourner une valeur Show () de TaskDialog quand il est fermé?
-
26-09-2019 - |
Question
J'utilise la mise en œuvre de TaskDialog WindowsAPICodePack, mais il me dérange que je dois écouter de cliquer sur ses boutons gestionnaires, même pour les implémentations les plus élémentaires. Je voudrais convertir / envelopper de sorte que, comme le vieux MessageBox bloque jusqu'à la fermeture, puis retourne une valeur basée sur ce qui a été fait. Est-ce que je peux lire pour les éléments de base sur la façon de le faire? Je n'ai aucune idée où commencer même, comme je suis certes pas familier avec les fondements Win32.
La solution
Dans le cas où il aide quelqu'un, après une lecture je me suis dit que l'appel bloque Show est déjà. Pour retourner une valeur, je une classe de base mis en œuvre ExtendedTaskDialog<T>
qui contient une TaskDialog
et contient une méthode Show(Window)
d'aide afin d'attribuer les parents de l'TaskDialog, et une méthode abstraite de public T Show(Window)
. dialogues réels découlent de cela, et d'en tirer leur propre ENUM pour fournir le type de base, comme MyDialog : ExtendedTaskDialog<MyDialogResult>
. Puis, à l'intérieur, les boutons de MyDialog
de gestionnaires d'cliquez sur Définir le résultat avant d'appeler la méthode Close
du TaskDialog
l'interne.