Какое событие отправляется нажатием на кнопку закрытия "X" для всплывающей подсказки MFC?

Я работаю над очень большим и сложным приложением для Windows, написанным на C++ и использующим MFC.

Я работаю над этой ошибкой, когда пользователь нажимает всплывающую подсказку, он не закрывается, только по истечении времени ожидания.

Дело в том, что я получил NIN_BALLOONUSERCLICK событие и удалось закрыть всплывающую подсказку, но я не могу отловить событие, возникшее, когда пользователь нажимает кнопку "X" в верхнем правом углу.

Может кто-нибудь мне помочь? Какое событие я должен искать? Я потратил около 3 дней на поиск в Интернете, но никто, кажется, не знает пути.

Если вы можете сказать мне, как заставить кнопку "X" исчезнуть, это тоже будет хорошо!

1 ответ

Решение

Причина, по которой вы не можете найти ни одного такого события, заключается в том, что он не существует. Невозможно провести различие между закрывающимся баллоном, потому что пользователь щелкнул где-то на нем, и баллоном, который был отклонен, потому что пользователь специально щелкнул по кнопке закрытия ("X").

Дополнительную информацию можно найти в этой статье в блоге Рэймонда Чена: почему значки уведомлений не получают сообщение, когда пользователь нажимает кнопку "X"?

По сути, событие не существует, чтобы удержать вас от плохих поступков, таких как раздражение ваших пользователей. Нет абсолютно никакой причины, по которой вам нужно делать что-то другое, в зависимости от того, как пользователь отклонил всплывающее уведомление.

Заставить кнопку "Х" исчезнуть - это определенно неправильный выбор. Если спросить, это звучит так, будто вы - именно тот разработчик, от которого команда Windows Shell пыталась нас защитить. Рад, что у кого-то есть наши спины как ничего не подозревающие пользователи вашего приложения. Пользователям нравится иметь возможность отклонять вещи. Исследования юзабилити неоднократно указывали на то, что пользователи испытывают сильные стрессы и запутанность, когда нет кнопки "Отмена". Вы должны работать в рамках разумного, удобного для пользователя дизайна.

NIN_BALLOONUSERCLICK это правильный выбор. Подсказка будет отклонена, когда пользователь нажмет на нее. Документация объясняет все различные уведомления, которые доступны более подробно.

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