대화 상자가 열려 있는데 왜 Microsoft Word를 닫을 수 없습니까?


28

다른 대화 상자가 열린 상태에서 문서를 닫으려고 할 때 Word에서 종종 오류가 발생하지만 그 원인이 무엇인지 알 수 없었 습니다.


6
일반적인 문제는 대화 상자의 내용이 기본 창에서 수행 한 작업에 따라 유효하거나 유효하지 않거나 적용되지 않을 수 있으며 사용자가 대화 상자의 대화 상자에서 변경 한 내용으로이를 해결할 수있는 명확한 방법이 없다는 것입니다 짬. (이것은 "피드백 루프가 시스템에서 문제를 일으킬 수있다"는보다 일반적인 원칙의 또 다른 표현 일 뿐이다.)
Mehrdad

작업 관리자를 시작하고 프로세스를 종료하도록 지시 할 수 있습니다. =) 그러나 이것은 예기치 않은 부작용이있을 수 있습니다. ( 파일이 손상 수있는 드문 경우 가 있을 수 있지만, 파일이 극히 드문 것 같습니다. 예상치 못한 충돌과 정전을 위해 설계되어야합니다.)
jpmc26

답변:


61

대부분의 대화 상자는 " 모달 " 로 간주되므로 대화 상자 가 닫힐 때까지 제어가 기본 프로그램 또는 호출 컨테이너로 다시 전달되지 않습니다. 이것은 의도적으로 설계된 것이며 프로그래머는 창을 모달 또는 비 모달로 만들 수 있습니다. 일반적으로 주 프로그램이 선택 (Ok) 또는 중단 (취소)을 통해 열린 대화 상자가 처리 될 때까지 주 프로그램이 계속 될 수 없거나 지속되지 않아야하는 경우 창은 모달로 정의됩니다.


4
그러나 대화가 모달이라면 OP는 프로그램이 닫히도록 어떻게 지시 했습니까? 여기에 다른 일이 있습니까?
Monica

7
@LightnessRacesinOrbit 프로그램을 닫는 방법은 여러 가지가 있지만 주 창을 모두 클릭해야하는 것은 아닙니다. 예를 들어, 작업 표시 줄 항목을 마우스 오른쪽 단추로 클릭하고 "닫기"를 선택하거나 Ctrl-Shift-Esc를 사용하여 작업 관리자를 끌어서 닫으십시오. Windows를 종료하면 처음에는 응용 프로그램을 정상적으로 닫으려고 시도하지만 시간 초과 후에 응용 프로그램이 "종료"될 수 있습니다. 이것들은 실제로 초점을 맞추지 않고 프로그램을 닫아 신호를 보내므로 Bob의 스크린 샷 은 "확인을 클릭하고 Word로 전환하십시오"라는 순서로 표시됩니다.
IMSoP

@IMSoP : 애플리케이션을 종료하도록 요청하는 "엔지니어링"방법이 더 많다는 것을 알고 있지만 OP가 정확히 무엇을 지정할 것으로 예상했기 때문에 "일반적인 사용"이 끝났다고 생각하는 선을 정신적으로 그려 냈습니다. "일반적인 사용법"을 넘어 서면 수행하고있었습니다.
Monica와의 가벼움 경주

11
@LightnessRacesinOrbit 나는 당신에게 작업 관리자가 더 "전문적인"방법을 부여하지만, 사람들이 작업 표시 줄에서 무언가를 닫는 것이 완벽하게 정상이라고 생각하더라도 전혀 놀라지 않을 것입니다. 사실, 이제는 마우스 오른쪽 버튼을 클릭 할 필요가 없으며 그룹 위에 마우스를 올리거나 작은 섬네일을 보면 빨간색 [x] 버튼이 있습니다. 다른 사람들에게는 다른 것들이 분명해 보입니다.
IMSoP

@IMSoP : 맞습니다.
Monica와의 가벼움 경주

20

대화 상자는 다음과 같이 말할 수 있습니다.

문서를 변경했습니다. 저장 하시겠습니까? (예 아니오)

여기에는 분명한 정답이 없습니다. 실수로 문서가 손상되었을 수 있습니다 (예 : 고양이가 키보드 위로 걸어 다니는 경우). 대답이 "아니요"이거나 변경 내용을 입력하는 데 몇 시간을 소비 한 경우에는 대답이 "예"입니다.

Word에서 가장 안전한 방법은 질문에 대답 할 때까지 닫지 않는 것입니다.


8
나는 질문에 관한 확신 특별히 오류가 발생했습니다.
Bob

12
그러나 질문에는 특정 대화 상자가 언급되지 않았습니다. 나는 프로그래머이며 모달 대화 상자가 무엇인지 이해하지만 그 이유무엇인지에 대한 질문에 대답하려고 했습니다.
Nick Gammon

IMHO는 프로그래머가 아닌 사람들이 프로그램을 사용한다는 것을 명심해야한다.
LawrenceC

1

프로그램은 이러한 방식으로 설계되었으므로 사용자가 원하지 않는 조치를 취하지 않습니다.

일반적으로 프로그램이 사용자에게 조치를 안내해야하는 경우 대화 상자가 표시됩니다. 저장되지 않은 문서를 닫는 것이 가장 좋은 예입니다. 대화 상자는 변경 사항을 저장하거나 변경 내용을 삭제하거나 종료를 중단하고 편집으로 돌아갑니다. 프로그램을 종료하면 일부 조치가 취해 지므로이 질문에 대답하지 않고 프로그램이 의도적으로 종료를 거부합니다. 프로그램은 예를 들어 자체적으로 결정할 수 없습니다. 최근 편집 내용을 삭제하거나 반대로 키보드를 입력하여 올바른 버전을 덮어 씁니다.

닫는 것과 관련이없는 대화 상자를 고려하더라도 일반적으로 일부 프로세스가 진행 중이며 아직 완료되지 않았으며 사용자는 어떤 방법을 선택해야하는지 나타냅니다. 중단은 사용자가 의도하지 않은 동작이기 때문에 "단순히 중단"될 수 없습니다.

또한 제작자가 모든 기능에서 "안전한 방법"을 만들 필요가 없으므로 프로그램 디자인을 단순화합니다.

오늘날 대부분의 대화 상자는 기술적 인 의미에서 모달이 아니지만 (프로그램은 여전히 ​​책임이 있습니다), 프로그램의 더 넓은 논리 흐름에서 모달로 만드는 것이 더 쉽습니다.


0

내가 잘못 생각할 수도 있지만, 이것이 이전의 일반적인 대화 제어 동작으로 돌아가는 것 같습니다.

돌아 오지 않고 갑자기 죽으면 몇몇 사람들은 불쾌한 부작용을 겪었으며 때로는 심지어 현재 죽은 프로그램 밖에서도 불쾌한 부작용을 보였으며 모든 경우에 사용자 입력이 필요한 시스템 수준에서 무언가를하고 있다면 정중하게 벗어날 수있는 방법이 없었습니다.

왜 그런 식으로 사람들이 익숙해 졌는지, 수십 년 동안 그 가정으로 프로그래밍 된 개발자 및 더 중요하게 프로그래머가 아닌 사람들은 사무실 자동화 스크립트에서 해당 대화 상자를 사용했으며 Microsoft는 이전 버전과의 호환성 목표를 엄격하게 준수하지는 않습니다. .


0

커튼 뒤에는 창을 만들 때 프로그램 (이 경우에는 MS Word)이 "X 단추 클릭 이벤트 핸들러"를 작성합니다. 대화 창이 나타나면 Word에서이를 기록합니다. 그런 다음 X 버튼 핸들러에서 X 버튼을 클릭하면 기록 된 열린 대화 상자 창을 확인합니다. 일부가 있으면 처리기가 닫기 작업을 중단합니다. 존재하지 않으면 프로그램을 종료하고 OS는 프로그램이 사용하는 메모리를 정리합니다. 이것이 작동하는 방식입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.