開心生活站

位置:首頁 > 生活常識 > 

模式對話框和非模式對話框的區別

模式對話框和非模式對話框的區別:

模式對話框和非模式對話框的區別

1、使用中的區別

模式對話框創建後,程序的其他窗口便不能進行操作,必須將該窗口關閉後,其他窗口才能進行操作。而非模式對話框則無需這樣,它不強制要求用戶立即反應,而是與其他窗口同時接受用戶操作。

2、消息響應的區別

在消息響應方面,模式對話框和非模式對話框之間又有着很大的區別。模式對話框工作的時候,它有內部的消息泵機制,控件之間的交互不用人爲的去控制,系統會幫助我們去處理。非模式對話框則像普通窗口一樣,則由WinMain中書寫的消息循環驅動。但由於是對話框,它對一些消息有特殊的處理。因此,在消息循環中,需要先對對話框提供截獲消息的機會。

3、銷燬的區別

模式對話框的銷燬是使用EndDialog,而非模式對話框的銷燬是使用DestroyWindow。所以在銷燬對話框的時候,也要對其進行區別。非模式對話框,用戶關閉對話框時,對話框消息處理函數將收到WM_CLOSE消息,接到後調用DestroyWindow以銷燬非模式對話框。模式對話框,則一般響應IDOK和IDCANCEL。在PPC上,我們對於OK鍵和X鍵的處理要注意這點

標籤:對話框 模式