如何定制列表视(report style,full Row Select)的高亮选中条的字符和背景颜色?
如题。请给出代码! 问题点数:150、回复次数:6Top
1 楼zhenxizhou(东门行)回复于 2002-11-11 09:46:51 得分 130
代码太多,只列出关键的。如要整个源码,发信息给我。
void CCustomDrawDlg::OnCustomDrawList(NMHDR* pNMHDR,LRESULT* pResult)
{
//处理NM_CUSTOMDRAW消息
LPNMLVCUSTOMDRAW pDraw=(LPNMLVCUSTOMDRAW)pNMHDR;
//为所有的绘图阶段申请通知
*pResult=CDRF_NOTIFYITEMDRAW|CDRF_NOTIFYPOSTPAINT|CDRF_NOTIFYPOSTERASE;
//决定绘图阶段
DWORD dwDrawStage=pDraw->nmcd.dwDrawStage;
if(dwDrawStage&CDDS_ITEM)
{
//绘图阶段适用于特定的项目,则前景色和背景色换成该项目的CHotel所指定的颜色
CHotel* pHotel=(CHotel*)pDraw->nmcd.lItemlParam;
switch(pHotel->m_nColorOpt)
{
case 0:
pDraw->clrTextBk=RGB(255,0,0);
pDraw->clrText=RGB(0,0,0);
break;
case 1:
pDraw->clrTextBk=RGB(0,255,0);
pDraw->clrText=RGB(0,0,0);
break;
case 2:
pDraw->clrTextBk=RGB(0,0,255);
pDraw->clrText=RGB(255,255,255);
break;
}
if((dwDrawStage&CDDS_SUBITEM)&&(pDraw->iSubItem==0))//画每行的第一个项目,用斜体字
{
SelectObject(pDraw->nmcd.hdc,(HFONT)m_hItalicFont.m_hObject);
*pResult|=CDRF_NEWFONT;
}
else if((dwDrawStage&CDDS_SUBITEM)&&(pDraw->iSubItem==1||pDraw->iSubItem==2))//普通字体
{
SelectObject(pDraw->nmcd.hdc,(HFONT)m_hStdFont.m_hObject);
*pResult|=CDRF_NEWFONT;
}
}
}
Top
2 楼zhaolaoxin()回复于 2002-11-11 10:34:23 得分 0
upTop
3 楼yezhizi(zhizi)回复于 2002-11-11 14:17:29 得分 0
我也要用,谢谢发一份chengui1133@sina.comTop
4 楼joshua0137(joshua)回复于 2002-11-12 21:01:03 得分 0
问题我已自己解决。但我仍要感谢zhenxizhou(追忆) 的精彩回答,请你给我发完整源码,谢谢!我的Email是 ultradelta@sohu.comTop
5 楼joshua0137(joshua)回复于 2002-11-15 19:08:19 得分 0
怎么我进入贴子管理后显示给了分,而退出后又没给分?Top




