Как изменить вызов ShowD) TaskDialog, чтобы блокировать и возвращать значение при закрытии?
Я использую реализацию TaskDialog в WindowsAPICodePack, но мне жаль, что мне приходится слушать обработчики щелчков на его кнопках даже для более простых реализаций. Я хотел бы преобразовать / обернуть его так, чтобы, как старый MessageBox, он блокировался до закрытия, а затем возвращал значение на основе того, что было сделано. Есть ли что-нибудь, что я могу прочитать для основ о том, как это сделать? Я просто понятия не имею, с чего начать, так как я, правда, не очень знаком с основами Win32.
1 ответ
В случае, если это кому-то помогает, после некоторого чтения я понял, что вызов Show уже блокируется. Чтобы вернуть значение, я реализовал базовый класс ExtendedTaskDialog<T>
который содержит TaskDialog
и содержит помощника Show(Window)
метод для того, чтобы назначить родителя TaskDialog, и реферат public T Show(Window)
метод. Фактические диалоги вытекают из этого и выводят свое собственное перечисление в качестве базового типа, например MyDialog : ExtendedTaskDialog<MyDialogResult>
, Тогда внутренне, MyDialog
's button' Обработчики кликов устанавливают результат перед вызовом Close
метод внутреннего TaskDialog
,