You can draw the row in grey text to simulate disabling it. See my tutorial on custom draw if you need directions on using custom draw. As for disabling the checkbox, I think you can do it by handling LVN_ITEMCHANGING, and if the item's state icon (which is how the checkboxes are implemented internally) is about to change, you disallow the change. You may also need to handle LVN_KEYDOWN and watch for the space bar, because that will also change the state of a checkbox.