gpt4 book ai didi

c++ - WinAPI : Change Color of a TreeView using CustomDraw

转载 作者:行者123 更新时间:2023-11-30 04:17:46 26 4
gpt4 key购买 nike

我目前正在尝试更改 TreeView 项目的背景颜色。因此,我使用此消息来创建项目:

    SendMessage(ListView, LVM_INSERTITEM, 0, (LPARAM)&lvI);

此外,我正在像这样处理自定义绘制消息:

        case WM_NOTIFY:
{
LPNMLISTVIEW pnm = (LPNMLISTVIEW)lParam;
if (pnm->hdr.code == NM_CUSTOMDRAW)
{
LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)lParam;
switch (lplvcd->nmcd.dwDrawStage)
{
case CDDS_PREPAINT :
return CDRF_NOTIFYITEMDRAW;
case CDDS_ITEMPREPAINT:
lplvcd->clrTextBk = ???;

return CDRF_NEWFONT;
}
}

这很好用,我可以将颜色设置为我想要的任何颜色,但是,我还没有找到在发送消息时将颜色作为参数传递的方法。毕竟,当我只能分配常量或随机颜色时,自定义绘制对我来说毫无用处。

感谢您的帮助!

最佳答案

当你将项目添加到列表时,你可以通过设置LVIF_PARAM标志并填写LVITEM<的lParam成员来传递你自己的数据 结构。然后将其作为 NMCUSTOMDRAW::lItemlParam 传回给您。

不要被 WM_NOTIFY 消息本身附带的 lParam 搞糊涂了,那是一个不同的 lParam :)

关于c++ - WinAPI : Change Color of a TreeView using CustomDraw,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16831842/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com