Как изменить вызов 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,

Другие вопросы по тегам