问题标签 [custom-draw]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
48 浏览

windows - 如果工具提示始终是弹出窗口,它是如何自定义绘制的?

工具提示文档

工具提示控件始终具有 WS_POPUP 和 WS_EX_TOOLWINDOW 窗口样式,无论您是否在创建控件时指定它们。

同时,自定义绘制工具提示的方法是通过WM_NOTIFY/NM_CUSTOMDRAW,这需要父级。

那么如果工具提示始终是一个弹出窗口,那么如何执行自定义绘制呢?

0 投票
0 回答
46 浏览

winapi - 如何让 TreeView 发送 CDDS_*ERASE 事件?

我正在用 win32 实现一个自定义的 TreeView。具有以下自定义绘制代码:

尽管文档说必须从 CDDS_PREPAINT 返回相应的 CDRF ,但使用所有记录在案的方式,我试图让视图发送任何CDDS_*ERASE消息,但一点运气都没有。我在做/想要一些完全不可能的事情吗?

UPD:自定义绘制在窗口过程中完成。被pResult正确返回,CDDS_ITEMPOSTPAINT被捕获并正确处理。只是CDDS_*ERASE保持未触发。

用例:我需要捕捉 TreeView 项目从其先前坐标中删除的时刻,以便能够运行一些自定义清理代码。这CDDS_ITEMPOSTPAINT与自定义绘图配合得很好,但在滚动和导航期间绘图会重复,因为无法删除旧的自定义内容。