當前位置:科普知識站>生活小常識>

模式對話方塊和非模式對話方塊的區別

生活小常識 閱讀(1.83W)

模式對話方塊和非模式對話方塊的區別:

模式對話方塊和非模式對話方塊的區別

1、使用中的區別

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

2、訊息響應的區別

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

3、銷燬的區別

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