可以通過向我介紹優秀的教程鏈接,幫助我獲得關於模態對話框與非模態對話框之間差異的全面知識嗎?
例如,你可以向我解釋有關鏈接here的程序嗎?他們是模態和非模態的?
我知道設計一個只使用代碼的對話框意味着沒有模式,但使用Toolbox
設計對話框意味着模態,但是和我搜索一樣多,我變得更加困惑。你能幫我理解更多嗎?MFC中模態對話框與非模態對話框之間的區別
回答
模態對話框與非模態對話框之間的區別不僅限於MFC。
當模態對話框處於打開狀態時,只要模態對話框打開,就不能與程序內部的此模態對話框進行任何其他操作。大多數對話框是模態的,例如文件另存爲對話框是模態的。
另一方面,一個無模對話框的行爲就像一個普通的窗口,你可以做任何你想要的,當它打開。 Microsoft Word中的拼寫檢查器對話框就是這種對話框的一個例子。
您在問題中提到的鏈接與模態和無模式對話無關。
模式對話框在MFC中很平常。
無模式對話框有點複雜,但是您可以在google上搜索「mfc modeless dialog tutorial」找到大量的教程。
非常感謝@Michael Walz那麼我該如何理解一個對話框是一種模式還是非模式的對話,只需看到代碼並在運行程序之前? – sepideh
模式對話框通過調用MFC中的CDialog派生類的DoModal成員函數或使用API函數DialogBox來創建。
無模式對話框通過調用MFC中的CDialog派生類的Create()(或CreateIndirect
)成員函數或使用CreateDialog API函數來創建。
上面的鏈接也解釋了你需要做什麼來支持模態和非模態對話框,對於MFC,this MSDN link有更多的信息。
模型對話框: 1.模型對話框,我們可以溝通單個窗口(即)所有者窗口.Incase,我們可以打開子窗口(子窗口),直到我們關閉那個窗口,那時我們在父窗口上通信 例如:保存,保存爲 2.創建模型DialogBox來調用domodel() 3.關閉時間你是通話結束dialog.this DialogBox不是刪除只是隱藏 4.在模型DialogBox那裏有一個子消息循環
Modelless DialogBox: 1.當我們可以同時打開一個窗口(所有者窗口)時,我們也可以傳遞子窗口。 Ex.In記事本的查找,文字,
2.型號對話框創作是調用創建窗口() 和的ShowWindow(3,如果你想關閉該窗口呼叫銷燬窗口 這裏窗口被銷燬 4) 。這裏的按摩亨德爾父窗口
模態對話框:
- 打開模態對話框後,我們不能訪問父窗口EX:另存爲,OpenDialog箱。
- 模態對話框通過調用
Cdialog
的構造函數和DoModel
方法CDialog
並在堆棧中創建。 - 模態對話框通過調用
EndDialog()
函數關閉,它隱藏了對話框。 - 它掛起父窗口消息循環,並啓動它自己的消息循環。
無模式對話框:
- 打開無模式對話框後,我們可以訪問父窗口。
無模式通過調用
CDialog::Create(......); CDialog::Show Window(.....)
方法創建的。並在堆中創建。
- 通過調用
Destroy Window()
銷燬窗口關閉無模式對話框。 - 它沒有自己的消息循環,它依賴於父窗口消息循環。父窗口將消息轉發給子窗口。
- 1. 非模態JFace對話框?
- 2. SWT模態對話框非模態
- 3. 模態對話框變爲非模態
- 4. 輸入和模態對話框之間的區別
- 5. 模態對話框
- 6. 模態對話框
- 7. 混合MFC和WPF:模態對話框
- 8. 無模式對話框中的MFC C++顯示模態對話框
- 9. JavaFX 8處理非模態對話框和模態對話框的方法
- 10. 從另一個模態對話框引導模態對話框
- 11. 對齊模態對話框
- 12. 如何在非模態對話框上正確實現模態對話框?
- 13. jQuery最輕的非模態對話框?
- 14. 控件在非模態對話框中不呈現MFC
- 15. 的onClick模態對話框
- 16. 定時非模態對話框
- 17. 從模態對話框返回時間時,關閉對話框
- 18. 模態對話框。 - 混亂
- 19. 模態對話框存在:
- 20. jQuery多模態對話框
- 21. 單例模態對話框
- 22. jquery模態對話框onclick?
- 23. 模態對話框選項
- 24. Gtk,模態對話框
- 25. AsyncFileUpload在模態對話框
- 26. 內模態對話框
- 27. easeljs - 模態對話框?
- 28. 內模態對話框
- 29. 模態對話框IlvFileBrowser
- 30. 從模態對話框
爲簡單起見,「模型」對話框將佔用應用程序的最高窗口焦點,並且在此「模型」對話框關閉之前無法切換到其他窗體。無模式類似於浮動窗口。你使用的邊界根本不重要。 –