如何使用TreeView_SetItem更改 lParam
How to use TreeView_SetItem to change lParam?
我正在尝试使用 TreeView_SetItem
设置 lParam,但它不起作用。 以下测试代码使用 TreeView_GetItem
来显示 lParam 在使用 TreeView_SetItem
设置后保持不变。
targetItem
之前已设置为 HTREEITEM
。TreeView_SetItem
和 TreeView_GetItem
都返回 true,因此没有错误。
// targetitem has been set to an HTREEITEM which has an lParam equal to 1.
// I want to change it to 17
//
TVITEM tvItem = { 0 };
tvItem.mask = TVIF_PARAM | TVIF_HANDLE;
tvItem.hItem = targetItem;
tvItem.lParam = (LPARAM)17;
bool test1 = TreeView_SetItem(hWnd, targetItem, &tvItem); // returns true
TVITEM tvi = { 0 };
tvi.mask = TVIF_PARAM | TVIF_HANDLE;
tvi.hItem = targetItem;
bool test2 = TreeView_GetItem(hWnd, &tvi); // returns true
//
// tvi.lParam is unchanged after setting (still = 1, expecting 17)
好的找到了
。 TreeView_SetItem
应该只有 2 个参数而不是 3 个参数。 不知道为什么它没有抛出错误。
bool test1 = TreeView_SetItem(hWnd, &tvItem);
相关文章:
- 如何在Qt C++中更改光标
- 为什么++(*p)更改指针值
- 如何通过派生类函数更改基类中的向量
- C++ 使用 assign 函数的字符串与直接使用 '=' 更改值的字符串之间的区别
- TDateTime格式在C++Builder中不会更改
- 查找后更改类变量
- 为什么我无法更改"set<set>"循环中的值<int>
- Xaudio2在更改缓冲区或循环时弹出声音
- 如何在Qbutton的帮助下更改Q对话框的宽度
- 在更改for循环的第三部分后,未使用for循环结果
- C++.我想将更改后的特定字符行保存在字符串中
- 使用窗口中的QSlider更改背景音量
- c++方法参数只能在linux的发布模式下自行更改
- 我可以检测和更改 gcc/g++ 中结构的当前数据对齐设置吗?
- 如何使用boost::具有嵌套结构和最小代码更改的序列化
- 可以使用移动语义更改或改进此C++代码吗?
- C++继承更改成员
- 如何定义更改car类中car位置的方法
- 为什么我的排序算法会更改数组值
- 如何使用TreeView_SetItem更改 lParam