gpt4 book ai didi

c++ - TreeView_SetExtendedStyle 不应用某些样式,我做错了什么?

转载 作者:太空宇宙 更新时间:2023-11-04 06:22:50 24 4
gpt4 key购买 nike

我想用 new extended styles 来“玩玩” ,尤其是那些使用复选框操作的。

问题是它们似乎都不起作用。

我无法确定 TVS_EX_DOUBLEBUFFER 是否有效,因为我的 TreeView 很小。我还没有测试 TVS_EX_RICHTOOLTIP。除此之外,无论我设置什么其他样式,我都看不到任何效果。

这是相关的片段:

HWND hwndTV = CreateWindowEx(...);
// first, add checkboxes
DWORD dwStyle = GetWindowLong(hwndTV, GWL_STYLE);
dwStyle |= TVS_CHECKBOXES;
SetWindowLongPtr(hwndTV, GWL_STYLE, dwStyle);
// now add extended window styles
HRESULT h = TreeView_SetExtendedStyle(hwndTV,
TVS_EX_PARTIALCHECKBOXES, TVS_EX_PARTIALCHECKBOXES);
// insert items...

我检查了 TreeView_SetExtendedStyle macro 的返回值它并没有失败,这更加增加了我的挫败感。

问题:

你能告诉我如何正确应用扩展样式吗?例如,如何正确设置 TVS_EX_PARTIALCHECKBOXES 或任何其他设置?

谢谢。

最佳答案

设置样式的方式没有任何问题 - 问题在于何时设置样式。

在设置 TVS_CHECKBOXES 之前,您需要先设置 TVS_EX_PARTIALCHECKBOXES 扩展样式。这是因为设置 TVS_CHECKBOXES 会触发为 TreeView 创建状态图像列表,如果在创建时设置了部分样式,则此图像列表仅包含“部分”图像。如果稍后设置了 TVS_EX_PARTIALCHECKBOXES,则不会自动重新创建图像列表。

此外,如果您想使用部分复选框样式,则不能在调用 CreateWindowEx 时指定 TVS_CHECKBOXES,因为无法设置 TVS_EX_PARTIALCHECKBOXES 直到控件被创建。

关于c++ - TreeView_SetExtendedStyle 不应用某些样式,我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31488233/

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