2011-06-13 22 views
1

我有一個SDI應用程序。在應用程序中有一個無模式對話框,用於顯示一些消息,如在工作期間與服務器進行通信。問題是,當對話框的父窗口設置爲主框架時,ShowWindow方法不能按預期工作。看起來對話框被主框架覆蓋。如果我在ShowWindow調用旁邊放一個Sleep調用,我可以看到對話框。當睡眠結束時,對話框消失。如果我沒有設置對話框的父窗口,則ShowWindow調用正常工作。但我確實想設置對話框的父窗口。那麼如何解決它?CDialog ShowWindow問題

+0

爲什麼你想讓無模對話成爲主要對話框的孩子?除非有很好的理由建立這種關係,否則將NULL傳遞給父項。我覺得你可能誤解了無模式對話框的父窗口的語義。 – 2011-06-13 12:04:59

+0

主要原因是如果對話框的父窗口沒有設置,它將顯示一個任務欄按鈕。而且我還發現,如果創建的對話框像pDlg-> Create(IDD,AfxGetMainWnd()),它自動設置父窗口,則ShowWindow調用將正常工作。設置父窗口的兩種方法有什麼區別嗎? – Wilbur 2011-06-13 12:18:16

+0

您可以設置哪些樣式不會獲取該任務欄按鈕。例如,將它設置爲工具提示窗口(如果這就是你想要的) – 2011-06-13 12:27:48

回答

1

「睡眠」使它工作一段時間的事情讓我認爲你正在堆棧上創建對話框,並且它超出了範圍,因此破壞了它本身。