Почему Microsoft Word не может закрыться, если открыто диалоговое окно?

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

3
задан John
15.03.2023 21:18 Количество просмотров материала 2724
Распечатать страницу

5 ответов

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

60
отвечен Bill Hileman 2023-03-17 05:06

диалоговое окно может быть что-то вроде:

вы внесли изменения в документ, хотите их сохранить? (Да) (Нет)

здесь нет очевидного правильного ответа. Возможно, вы случайно повредили свой документ (например, кошка прошла по клавиатуре), и в этом случае ответ "нет", или вы, возможно, потратили часы на ввод изменений, и в этом случае ответ "да".

самое безопасное, что за слово это такое отказывайтесь закрывать, пока не ответите на вопрос.

20
отвечен Nick Gammon 2023-03-17 07:23

потому что программа разработана таким образом, чтобы избежать принятия мер, пользователь может не хочу.

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

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

Она также упрощает дизайн программы, как создатели это не приходится создавать "безопасный выход" из каждой функции.

сегодня большинство диалогов не являются модальными в техническом смысле (программа остается ответственной), но все же проще сделать их модальными в более широком смысле логического потока программы.

1
отвечен Agent_L 2023-03-17 09:40

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

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

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

0
отвечен Bill 2023-03-17 11:57

за кулисами программа (в нашем случае это MS Word) создает "обработчик событий нажатия кнопки X" при создании окна. Когда есть диалоговое окно, Word записывает это. Затем, в обработчике кнопки X, когда кнопка X нажата, он проверяет записанные открытые диалоговые окна. Если они есть, обработчик прерывает операцию закрытия. Если их нет, программа завершает работу и ОС очищает память, занимаемую программой. Вот как это работает.

0
отвечен Vladislav Toncharov 2023-03-17 14:14

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх