2010-02-25 59 views
2

如何禁止在對話窗口中的所有控件?我知道我可以使用 EnableWindow(FALSE); 但這並不似乎是一個好主意,因爲現在還沒有辦法讓用戶單擊「確定」或「取消」按鈕或按「X」按鈕退出。該對話框像凍結。禁用對話框控件MFC

我所尋找的是禁用所有控件在一個對話框中,同時提供某種方式使用戶退出的方式。

另一種解決方案是通過瀏覽所有對話框控件並禁用它們來手動執行它,但這會變得單調乏味。任何簡單的方法?

謝謝。

回答

4

很抱歉,但要通過所有的控制和禁止他們每個人的是的簡單方法。

您可以使用EnumChildWindows或使用循環調用GetWindow(... GW_HWNDNEXT)來編寫一個通用函數,直到它爲下一個窗口返回NULL。

記得剛跳過禁用具有IDCANCEL作爲ID的窗口。

+0

是的,這是正確的。 – mwigdahl

+1

不要忘記:永遠不要禁用有重點的控制!如果您必須禁用該控件,請先將焦點傳遞給另一個控件,然後*禁用它。 – Stefan