C++ Multiple Modal Dialog hang
조회수 807회
안녕하세요.
이래저래 찾아보다가 질문드립니다.
우선 상황은 다음과 같습니다. 프로세스 pc_A가 4개의 Dialog를 띄운 상태입니다.
Dlg_A, Dlg_B, Dlg_C, Dlg_D
각각의 다이얼로그는 CFileDialog를 사용한 '파일열기' 기능을 갖고 있으며, Dlg_A의 경우 SHBrowseForFolder 또한 사용합니다. 이 때, 각 CFileDilaog나 SHBrowseForFolder를 위한 BROWSEINFO등은 지역변수입니다.
이 때, Dlg_A, Dlg_B, Dlg_C, Dlg_D 순으로 CFildDialog(Dlg_A의 경우SHBrowseForFolder를 사용해도 동일합니다.)를 활성화 시킵니다. 이 경우 각 CFileDialog(SHBrowseForFolder)는 Modal로 출력됩니다.
이후 Dlg_D의 Modal-Dialog를 종료하지 않을 경우, Dlg_A,B,C는 Modal-Dialog를 종료해도 기존 Main Dialog(Dlg_A,B,C)의 메세지 처리가 진행되지않아, 겉으로 보기에는 Hang에 걸린 것처럼 보입니다.
이 때 Dlg_D의 Modal-Dialog를 종료할 경우 모든 다이얼로그는 정상동작합니다.
위와 같은 상황에서, Dlg_D(가장 나중에 실행된 Modal-Dialog의 Main-Dlg)의 Modal-Dialog를 종료하지 않은 상태에서도 다른 다이얼로그들의 동작이 정상적으로 이루어지게 하려면 어떻게 해야하나요?
pump message나 EndModalLoop등을 시도해보려 하였으나 전자의 경우 실력의 미숙, 후자의 경우 효과없음이었습니다.
답변에 미리 감사드립니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력