Сначала я добавляю TVS_EX_PARTIALCHECKBOXES в расширенные стили CTreeCtrl:
TreeView_SetExtendedStyle(tree->GetSafeHwnd(), TVS_EX_PARTIALCHECKBOXES, TVS_EX_PARTIALCHECKBOXES);
Теперь, как мне на самом деле установить любой элемент в это состояние? Там, кажется, нет никакой документации об этом. Я догадался, что, поскольку проверка и снятие отметки работает путем изменения изображения состояния элемента на 1 или 2, я могу попытать счастья с 3:
tree->SetItemState(tree->GetFirstVisibleItem(), INDEXTOSTATEIMAGEMASK(3), TVIS_STATEIMAGEMASK);
Конечно, это было бы слишком просто, просто изображение исчезло.