2012-03-04 3 views
1

모달 대화 상자를 만들 수 있습니까? 대화 상자 (Param)은 소유자 스레드에서 다른 모든 최상위 창을 차단합니다. 비슷한 메시지 상자는 MB_TASKMODAL 플래그로 생성됩니까?모달 대화 상자에 대한 MB_TASKMODAL 플래그

사용 시나리오에는 여러 최상위 창 (주로 모덜리스 대화 상자)으로 구성된 응용 프로그램 UI가 포함됩니다.

답변

3

이렇게 할 API가 있는지 모르겠지만 직접 할 수 있습니다.

EnumThreadWindows을 호출하여 스레드와 관련된 최상위 창을 열거하십시오. 콜백 함수에서 EnableWindow을 호출하여 대화 상자를 표시하기 전에 창을 비활성화하거나 대화 상자를 닫은 후 대화 상자를 활성화하십시오.

+1

EnumThreadWindows()는 통증을 상당히 줄입니다. 재사용이 너무 늦게 완료되면 다른 프로세스로 포커스를 잃을 가능성이 높습니다. –

+0

+1 EnumThreadWindows. 나는 결코 그것을 알아 채지 못한 것에 놀랐다. – arx

관련 문제