按钮控件需要一些时间才能在对话框中禁用
Posted
技术标签:
【中文标题】按钮控件需要一些时间才能在对话框中禁用【英文标题】:Button control takes some time to disable in dialog box 【发布时间】:2014-10-28 09:53:16 【问题描述】:我正在尝试从对话框中的主线程执行一些冗长的操作。在那段时间里,我想禁用一些控件。我为每个控件使用了 EnableWindow(FALSE) 来禁用它。但除了按钮控件之外,所有其他控件(即滑块控件、CMFCEditBrowse 控件、ComboBox 控件)都在处理之前完全禁用。但是按钮控件需要更多时间才能禁用。当操作即将结束时,它们几乎被禁用。为什么当我调用 EnableWindow(FALSE) 时按钮控件没有被禁用?为什么禁用需要时间?
【问题讨论】:
【参考方案1】:您需要完全在另一个线程中执行后台任务,并在另一个线程中更改 UI/控件。如果直接调用EnableWindow
不起作用,您应该使用PostMessage
。例如,SetFocus
不能在不同的线程中工作。
【讨论】:
如果假设我的 UI 线程正忙于执行冗长的操作,并且 EnableWindow(false) 发布的消息正在队列中等待处理,那么不应禁用所有控件,对吗?我的问题是为什么单独的按钮控件没有禁用?以上是关于按钮控件需要一些时间才能在对话框中禁用的主要内容,如果未能解决你的问题,请参考以下文章
如何禁用 Qt Mainwindow 快捷方式适用于无模式对话框