首页
社区
课程
招聘
[求助]列表视图SDK怎么设置单元颜色。
发表于: 2008-7-8 23:04 4594

[求助]列表视图SDK怎么设置单元颜色。

2008-7-8 23:04
4594
列表视图SDK怎么设置单元颜色。  我知道要用一些消息
NM_CUSTOMDRAW
CDDS_ITEMPREPAINT这些消息 还有一些结构 至于怎么做
请高人详细说一下

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 18
活跃值: (2079)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
自己顶一下。。。。
2008-8-22 14:13
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
3
1. ON_NOTIFY( NM_CUSTOMDRAW, IDC_LIST, OnDrawColorForMyList )

2. //改变 m_List 控件单行的颜色
void CXX::OnDrawColorForMyList( NMHDR *pNmHdr, LRESULT *pResult )
{
NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNmHdr );
    *pResult = CDRF_DODEFAULT;
if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage )
{
        *pResult = CDRF_NOTIFYITEMDRAW;
}
    else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage )
{
        *pResult = CDRF_NOTIFYSUBITEMDRAW;
}
    else if ( (CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pLVCD->nmcd.dwDrawStage )
{
  COLORREF clrNewTextColor, clrNewBkColor;
        
  int    nItem = static_cast<int>( pLVCD->nmcd.dwItemSpec );

  //如果当前地址与原始地址不一样,则显示字体为红色,否则为黑色
  if( sudami != "xor" )  //设置为红色
  {
   clrNewTextColor = RGB( 255, 0, 0 );
  }
  else  //设置为黑色
  {
   clrNewTextColor = RGB( 0, 0, 0 );
  }

  //设置背景色
  if( nItem%2 ==0 )
  {
   clrNewBkColor = RGB( 240, 240, 240 ); //偶数行背景色为灰色
  }
  else
  {
   clrNewBkColor = RGB( 255, 255, 255 ); //奇数行背景色为白色
  }
  pLVCD->clrText = clrNewTextColor;
  pLVCD->clrTextBk = clrNewBkColor;
        *pResult = CDRF_DODEFAULT;
}
}
2008-8-22 14:29
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
4
MFC做界面啊。。。。。

还是VB.net/C#/Delphi等画界面轻松
2008-8-22 14:30
0
游客
登录 | 注册 方可回帖
返回
//