Я пытаюсь установить lParam с помощью TreeView_SetItem
, но он не работает. В следующем тестовом коде используется TreeView_GetItem
, чтобы показать, что lParam не изменяется после установки TreeView_SetItem
.Как использовать 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)
Дикой догадка: Если не '' tvItem.mask' содержит TVIF_HANDLE' в 'TreeView_SetItem' позвонить? – IInspectable
Я добавил «TVIF_HANDLE» и все еще не работает. Обновлен код. – poby
Действительно ли 'hWnd' дескриптор родительского диалога, а не дерева? –