I am using a CCheckListBox in order to get a list box with check boxes in it. I have set the check style to use BS_AUTO3STATE in order to use the BST_INDETERMINATE check state.
There is a bug in CCheckListBox::PreDrawItemThemed that causes the check box to be drawn incorrectly when this state is active. The checkbox ends up being drawn as if it was unchecked and disabled.
The function uses the following code to convert the check to the draw state.
int nState = CBS_UNCHECKEDNORMAL;
case 1 :
nState = CBS_CHECKEDNORMAL;
case 2 :
nState = CBS_UNCHECKEDDISABLED;
case 2 : is used for BST_INDETERMINATE. However, nState should be set to CBS_MIXEDNORMAL to correctly draw the checkbox.