주 창이 있으며 사용자가 응용 프로그램의 프레임 중 하나를 "팝업"하여 기본 창에 포함되지 않고 뜨는 수 있습니다. 주어진 시간에 세 개의 WS_POPUP 창이 생길 수 있도록 여러 개의 프레임이 나타납니다.모달 대화 상자를 표시 할 때 모든 최상위 창 (WS_POPUP)을 비활성화합니다.
문제는 내가 모달 대화 상자를 표시하려고 할 때 DoModal 함수의 매개 변수를 사용하여 대화 상자 하나만 비활성화 할 수 있다는 것입니다. DoModal을 사용하여 최상위 창을 모두 비활성화하려면 어떻게합니까? 모달을 표시하기 전에 단순히 창을 비활성화 한 다음 다중 모달 대화 상자 (모달 대화 상자 하나가 다른 모달 대화 상자를 여는 경우)가있을 수 있기 때문에 다시 활성화 할 수는 없습니다.
API가 이와 같은 기능을 제공합니까? 나는 2 시간 동안 이것을 봤고 충분히 좋은 해결책을 찾지 못했다. MFC, WTL 및 ATL의 조합을 사용하고 있습니다.
미리 감사드립니다.
대화 상자의 작동 방식이 아닙니다. 비슷한 효과를 얻으려면 명시 적으로 EnableWindow()를 사용해야합니다. 하지만 그렇게하지 않으면 모든 사용자에게 직관적이지 않습니다. –
@JanS : 모달 대화 상자는 소유자가 ** 소유 **합니다. 자녀/부모 관계는 없습니다. 모달 대화 상자는 형제를 사용 중지하지 않습니다. 다른 소유 된 창. – IInspectable
@HansPassant 어떤 부분이 직관적이지 않다고 생각하십니까? 현실 세계의 한 예가 비주얼 스튜디오입니다. Visual Studio는 여러 팝업 창을 지원합니다. VS에서 파일을 열 때 다른 모든 팝업 창이 비활성화됩니다. 어쨌든, 저는 구현에 대해 더 염려합니다. – bysreg