+ case WM_RBUTTONDOWN:
+ // if the item we are about to right click on
+ // is not already select, remove the entire
+ // previous selection
+ if (!::IsItemSelected(GetHwnd(), htItem))
+ {
+ UnselectAll();
+ }
+
+ // select item and set the focus to the
+ // newly selected item
+ ::SelectItem(GetHwnd(), htItem);
+ ::SetFocus(GetHwnd(), htItem);
+ break;
+