VC/MFCCListCtrl控件中如何高亮选中一行急急急方法可行分立刻奉上
问题说明:我是使用CListCtrl对象动态创建的一个列表控件(报表类型)我需要通过代码高亮选中其中一行控件关联的对象为m_ListCtrl注意:通过m_ListCtrl...
问题说明: 我是使用CListCtrl对象动态创建的一个列表控件(报表类型)我需要通过代码高亮选中其中一行控件关联的对象为m_ListCtrl 注意:通过m_ListCtrl.SetItemState(0,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED); 可以选中一行但是所选中的行并没有高亮显示,并且已经正确的设置了列表控件的属性 非诚勿扰!
展开
1个回答
展开全部
这个要自己写个扩展类, 主要代码部分,我给你列出来 ////////////////////////////////////////////////////////////////////////// //增加背景色彩 voidCXXSortListCtrl::OnCustomDraw(NMHDR*pNMHDR,LRESULT*pResult) { LPNMLVCUSTOMDRAWlplvcd=(LPNMLVCUSTOMDRAW)pNMHDR; switch(lplvcd->nmcd.dwDrawStage) { caseCDDS_PREPAINT: *pResult=CDRF_NOTIFYSUBITEMDRAW;//askforsubitemnotifications. break; caseCDDS_ITEMPREPAINT://askforsubitemnotifications. *pResult=CDRF_NOTIFYSUBITEMDRAW; if(GetExtendedStyle()&LVS_EX_CHECKBOXES)//ifwehaveacheckboxstyle, {//forgetaboutsubitemnotifications. *pResult=CDRF_DODEFAULT; intiRow=lplvcd->nmcd.dwItemSpec; if((iRow&1))//&&(iCol&1))//单行 { lplvcd->clrTextBk=m_clrLine;//RGB(255,0,0); lplvcd->clrText=m_clrText;//RGB(255,255,0); *pResult=CDRF_NEWFONT; } else//双行 { lplvcd->clrTextBk=m_clrTwoLine;//RGB(255,0,0); lplvcd->clrText=m_clrText;//RGB(255,255,0); *pResult=CDRF_NEWFONT; } //注意.........:) //这里就是你要更改的地方... if(GetCheck(iRow))//highlightcheckedrows { //lplvcd->clrTextBk=m_clrChkText;//RGB(255,0,0); lplvcd->clrText=m_clrChkText;//RGB(255,255,0); *pResult=CDRF_NEWFONT; } } break; caseCDDS_ITEMPREPAINT|CDDS_SUBITEM://recdwhenCDRF_NOTIFYSUBITEMDRAWisreturnedin {//responsetoCDDS_ITEMPREPAINT. *pResult=CDRF_DODEFAULT; intiCol=lplvcd->iSubItem; intiRow=lplvcd->nmcd.dwItemSpec; if((iRow&1))//&&(iCol&1))//单行 { lplvcd->clrTextBk=m_clrLine;//RGB(255,0,0); lplvcd->clrText=m_clrText;//RGB(255,255,0); *pResult=CDRF_NEWFONT; } else//双行 { lplvcd->clrTextBk=m_clrTwoLine;//RGB(255,0,0); lplvcd->clrText=m_clrText;//RGB(255,255,0); *pResult=CDRF_NEWFONT; } if(GetItemState(iRow,LVIS_SELECTED)) { lplvcd->clrTextBk=m_clrSelected;//RGB(255,0,0); lplvcd->clrText=m_clrSelText;//RGB(255,255,0); *pResult=CDRF_NEWFONT; } break; } default://itwasn'tanotificationthatwasinterestingtous. *pResult=CDRF_DODEFAULT; } }
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询