Отключение диалоговых элементов управления MFC - PullRequest
2 голосов
/ 25 февраля 2010

Как отключить все элементы управления в диалоговом окне? Я знаю, что мог бы использовать EnableWindow (FALSE); но это не кажется хорошей идеей, потому что теперь у пользователя нет возможности нажать кнопку «ОК» или «Отмена» или нажать значок «X» для выхода. Диалог похож на замороженный.

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

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

Спасибо.

1 Ответ

4 голосов
/ 25 февраля 2010

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

Вы можете написать общую функцию для этого, используя EnumChildWindows или используя цикл, вызывающий GetWindow (... GW_HWNDNEXT) , пока он не вернет NULL для следующего окна.

Только не забудьте пропустить отключение окна, в котором IDCANCEL имеет идентификатор.

...