VC中,使用dlg.DoModal()打開一個窗口,除了使用IDOK或者IDCANCEL可以關(guān)閉當前窗口外,如何關(guān)閉當前窗口 假如,我在主窗體上做三個按鈕,分別打開三個新的窗體,但是我想打開新窗體的時候要關(guān)閉當前窗體,不然使用dlg.DoModal()可以重復打開同一個窗體,哪位大哥可以具體點給我說明下嗎,謝謝
1 回答

藍山帝景
TA貢獻1843條經(jīng)驗 獲得超7個贊
你描述的內(nèi)容相互矛盾。
如果你的DoModal只在同一個窗口中調(diào)用,那么是不可能反復點擊打開多個的,這是模態(tài)對話框的特征。如果是要求按鈕只允許按一次,那么DoModal返回IDOK后Enable函數(shù)禁止按鈕就可以了。
DoModal存在父子窗口關(guān)系,你不可能關(guān)閉了父窗口而保留子窗口。因此如果你要“關(guān)閉”的是主窗口,那么只能是隱藏,不能使關(guān)閉。
無論OnOK還是OnCancel,最終都是通過EndDialog結(jié)束的對話框,這個函數(shù)在對話框中隨時可以調(diào)用。而正確使用時,不是只有兩個ID的按鈕才可以結(jié)束對話框,任何自定義按鈕中調(diào)用基類的CDialog::OnOK();這個語句,都可以結(jié)束對話框并將DoModal返回IDOK消息。
- 1 回答
- 0 關(guān)注
- 215 瀏覽
添加回答
舉報
0/150
提交
取消