2011-06-13 7 views
1

SDI 응용 프로그램이 있습니다. 응용 프로그램에는 작업을 수행하는 동안 서버와 통신하는 것과 같은 메시지를 표시하는 데 사용되는 모덜리스 대화 상자가 있습니다. 문제는 대화 상자의 부모 창이 기본 프레임으로 설정되어있을 때 ShowWindow 메서드가 예상대로 작동하지 않는다는 것입니다. 대화 상자가 메인 프레임으로 덮여있는 것 같습니다. ShowWindow 호출 옆에 잠자기 호출을하면 대화 상자가 나타납니다. 잠자기가 끝나면 대화 상자가 사라집니다. 대화 상자의 부모를 설정하지 않으면 ShowWindow 호출이 정상적으로 작동합니다. 하지만 대화 상자의 부모 창을 설정하고 싶습니다. 그럼 어떻게 소란 스러운가?CDialog ShowWindow 문제

+0

왜 모덜리스 대화 상자를 주 대화 상자의 하위 항목으로 사용 하시겠습니까? 그 관계를 설정해야하는 좋은 이유가 없으면 부모에게 NULL을 전달하십시오. 모덜리스 대화 상자에 대한 부모 창의 의미를 오해했을 것입니다. –

+0

주된 이유는 대화 상자의 부모 창을 설정하지 않으면 표시 될 때 작업 표시 줄 단추가 표시된다는 것입니다. 또한 대화 상자가 부모 창을 자동으로 설정하는 pDlg-> Create (IDD, AfxGetMainWnd())와 같이 생성 된 경우 ShowWindow 호출이 정상적으로 작동합니다. 부모 창을 설정하는 두 가지 방법 사이에 차이가 있습니까? – Wilbur

+0

작업 표시 줄 단추를 얻지 못하게 설정할 수있는 스타일이 있습니다. 예를 들어 툴팁 창으로 설정하는 경우 (원하는 경우) –

답변

1

'잠자기'기능을 사용하면 잠시 동안 작업하게되어 스택에서 대화 상자를 만들고 범위를 벗어나므로 파괴 될 수 있습니다.