CListCtrl 的 EnableWindow(FALSE) 不会改变它的外观

Posted

技术标签:

【中文标题】CListCtrl 的 EnableWindow(FALSE) 不会改变它的外观【英文标题】:EnableWindow(FALSE) for CListCtrl doesn't change the appearance of it 【发布时间】:2018-06-12 12:01:40 【问题描述】:

当我为 CListCtrl 尝试 EnableWindow(FALSE) 时,我无法对其执行任何操作,但它的外观不会像 CButton 或任何其他一样改变。有什么办法可以改变 CListCtrl 的外观。

【问题讨论】:

【参考方案1】:

我认为 CListCtrl 不打算在禁用时更改,但您可以使用 WM_ENABLE 消息自己更改外观。

【讨论】:

WM_ENABLE 可让您捕捉控件何时被禁用,并且您应该根据您的用例更改外观。例如将背景设为灰色。 @SayedMomeen CListCtrl::SetBkColor() 或使用custom draw 完全控制外观。 @zett42 SetLayeredWindowAttributes 这可以在 CListCtrl 上使用吗?? @SayedMomeen 如果您添加具有适当兼容性元素的应用程序清单,则从 Windows 8 开始,分层子窗口是可能的。见this answer。

以上是关于CListCtrl 的 EnableWindow(FALSE) 不会改变它的外观的主要内容,如果未能解决你的问题,请参考以下文章

CListCtrl的EnableWindow(FALSE)不会更改它的外观

区分 CListCtrl 中的用户单击和 SetChecked()

在类构造函数中使用 MFC 按钮控件 EnableWindow 方法时“调试断言失败”

clistctrl怎么用,有例子吗?

CListCtrl 鼠标事件不起作用

CListCtrl (MFC) 选择点击通过控制UNDERNEATH列表