Какое событие отправляется нажатием на кнопку закрытия «X» для всплывающей подсказки MFC? - PullRequest
0 голосов
/ 17 июля 2011

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

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

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

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

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

1 Ответ

1 голос
/ 17 июля 2011

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

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

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

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

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

...