2010-02-25 65 views
2

如何禁止在对话窗口中的所有控件?我知道我可以使用 EnableWindow(FALSE); 但这并不似乎是一个好主意,因为现在还没有办法让用户单击“确定”或“取消”按钮或按“X”按钮退出。该对话框像冻结。禁用对话框控件MFC

我所寻找的是禁用所有控件在一个对话框中,同时提供某种方式使用户退出的方式。

另一种解决方案是通过浏览所有对话框控件并禁用它们来手动执行它,但这会变得单调乏味。任何简单的方法?

谢谢。

回答

4

很抱歉,但要通过所有的控制和禁止他们每个人的是的简单方法。

您可以使用EnumChildWindows或使用循环调用GetWindow(... GW_HWNDNEXT)来编写一个通用函数,直到它为下一个窗口返回NULL。

记得刚跳过禁用具有IDCANCEL作为ID的窗口。

+0

是的,这是正确的。 – mwigdahl

+1

不要忘记:永远不要禁用有重点的控制!如果您必须禁用该控件,请先将焦点传递给另一个控件,然后*禁用它。 – Stefan