BOOL SetCheckStateDisabled(HWND hwndTree, HTREEITEM hItem, const BOOL bChecked) { TVITEM tvItem; ZeroMemory(&tvItem, sizeof(tvItem)); tvItem.mask = TVIF_HANDLE | TVIF_STATE; tvItem.hItem = hItem; tvItem.stateMask = TVIS_STATEIMAGEMASK; // Image 3 in the tree-view check box image list is the // disabled unchecked box. Image 4 is the disabled checked box. tvItem.state = INDEXTOSTATEIMAGEMASK((bChecked ? 4 : 3)); return TreeView_SetItem(hwndTree, &tvItem); }MSDN says: Version 5.80 displays a check box even if no image is associated with the item. They are talking about that version of Comctl32.dll. Which suggests this trick may not work. But I have tried this in version 5.82 (Vista) and it does work there.
Programming Tips - Win32: How can I hide a checkbox in a TreeView ?
Date: 2010may17
OS: Windows
Language: C/C++
Keywords: grey, gray, disable
Q. Win32: How can I hide a checkbox in a TreeView ?
A. Here's a function that hides it. Until a user clicks on it.
You need to add more code to prevent it from re-appearing when the user
clicks on it.