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 可让您捕捉控件何时被禁用,并且您应该根据您的用例更改外观。例如将背景设为灰色。 @SayedMomeenCListCtrl::SetBkColor()
或使用custom draw 完全控制外观。
@zett42 SetLayeredWindowAttributes
这可以在 CListCtrl 上使用吗??
@SayedMomeen 如果您添加具有适当兼容性元素的应用程序清单,则从 Windows 8 开始,分层子窗口是可能的。见this answer。以上是关于CListCtrl 的 EnableWindow(FALSE) 不会改变它的外观的主要内容,如果未能解决你的问题,请参考以下文章
CListCtrl的EnableWindow(FALSE)不会更改它的外观
区分 CListCtrl 中的用户单击和 SetChecked()