【发布时间】:2011-01-20 21:25:30
【问题描述】:
如何禁用对话框窗口中的所有控件?我知道我可以使用 启用窗口(假); 但这似乎不是一个好主意,因为现在用户无法单击“确定”或“取消”按钮或按“X”图标退出。对话就像被冻结了一样。
我正在寻找一种方法来禁用对话框中的所有控件,同时为用户提供某种退出方式。
另一种解决方案是手动完成所有对话框控件并禁用它们,但这会变得乏味。有什么简单的方法吗?
谢谢。
【问题讨论】:
如何禁用对话框窗口中的所有控件?我知道我可以使用 启用窗口(假); 但这似乎不是一个好主意,因为现在用户无法单击“确定”或“取消”按钮或按“X”图标退出。对话就像被冻结了一样。
我正在寻找一种方法来禁用对话框中的所有控件,同时为用户提供某种退出方式。
另一种解决方案是手动完成所有对话框控件并禁用它们,但这会变得乏味。有什么简单的方法吗?
谢谢。
【问题讨论】:
抱歉,通过所有控件并禁用每个控件是简单的方法。
您可以使用EnumChildWindows 或使用循环调用GetWindow(... GW_HWNDNEXT) 编写一个通用函数来执行此操作,直到它为下一个窗口返回NULL。
请记住跳过禁用以 IDCANCEL 作为 id 的窗口。
【讨论】: