如何防止 CTreeCtrl 的 OnCustomDraw 在我的画上画默认画

Posted

技术标签:

【中文标题】如何防止 CTreeCtrl 的 OnCustomDraw 在我的画上画默认画【英文标题】:How to prevent OnCustomDraw of CTreeCtrl from painting Default painting on my painting 【发布时间】:2010-12-06 10:36:28 【问题描述】:

我创建了一个 CTreeCtrl,但我需要在红色空心框中标记一些项目。 所以我创建了函数 OnCustomDraw 并在项目周围画了一个红色框。红框出现,但文本部分和图像部分绘制在红框的顶部,因此无法看到框的某些部分。我猜默认绘画覆盖了我的绘画。谁能告诉我我的画将如何超越默认画。

【问题讨论】:

【参考方案1】:

我认为你应该在正确的舞台上绘画。 CDDS_ITEMPOSTPAINT 似乎是个不错的选择。 Here 你会找到更多相关信息。

【讨论】:

谢谢老兄,这正是我所需要的。【参考方案2】:

您应该插入一个项目(您的绘图可能作为位图和您的文本)而不是只更新您的绘图。

【讨论】:

以上是关于如何防止 CTreeCtrl 的 OnCustomDraw 在我的画上画默认画的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MFC 中处理 CTreeCtrl 的状态更改事件

CTreeCtrl:如何清除所选项目的焦点

如何在运行时创建的 MFC 中获取 Treeview(CTreeCtrl) 的 Click 事件?

调用 SelectItem 函数时如何强制 CTreeCtrl 不滚动到项目?

如何在 CTreeCtrl 的背景中添加水印或 png 或位图?

自定义 CTreeCtrl - 如何修改文本/选择颜色