How can the user unselect rows with the mouse?
Press CTRL and click on the row header to unmark the row.
If you want to extend the behavior that the row is unmarked when you click in any cell of the row you should override OnLButtonClickedRowCol .
It should be fine to copy/paste the implementation in gxcorcur.cpp to your override and remove the
nCol <= GetHeaderCols()
statement.