1
TreeView_SetItem
を使用してlParamを設定しようとしていますが、機能しません。次のテストコードでは、TreeView_SetItem
を設定した後、lParamが変更されていないことを示すためにTreeView_GetItem
を使用しています。TreeView_SetItemを使用してlParamを変更するにはどうすればよいですか?
targetItem
は、以前にHTREEITEM
に設定されていました。 TreeView_SetItem
とTreeView_GetItem
の両方が真を返すのでエラーは発生しません。
// 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'は' 'TreeView_SetItem'呼んでTVIF_HANDLE'を含むべきではありませんか? – IInspectable
「TVIF_HANDLE」を追加してもまだ動作しません。コードを更新しました。 – poby
'hWnd'は実際にはツリーではなく親ダイアログのハンドルですか? –