我正在尝试使用TreeView_SetItem
设置lParam,但它无效。以下测试代码使用TreeView_GetItem
显示在使用TreeView_SetItem
设置后lParam未更改。
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)
答案 0 :(得分:1)
好的发现了。 TreeView_SetItem
应该只有2个参数而不是3个。不知道它为什么不会抛出错误。
bool test1 = TreeView_SetItem(hWnd, &tvItem);