This can't be answered in short. You may have a look on the sources of
CListCtrl
derived classes using owner draw. They usually add edit fields, check buttons, and combo boxes to cells.
See the CP article
CGridListCtrlEx - Grid Control Based on CListCtrl[
^] which also contains links to other articles.