Group Header Color in ListView control

When I try to use LVM_SETGROUPMETRICS / ListView_SetGroupMetrics / SetGroupMetrics() in Vista, there is no way to set the group header color, it is ignored.

The following code applied to a ListView / ListCtrl will make the group header show up green in XP , in Vista the group header doesn't change color, it always stays blue.

Is there any way to change a ListView controls group header color in Vista ?

Sample Code :

Code Snippet

// in OnInitDialog(), m_list is a CListCtrl on a CDialog :

ListView_SetExtendedListViewStyleEx(

m_list.m_hWnd, 0, LVS_EX_DOUBLEBUFFER );


SetGroupColor();

m_list.EnableGroupView( true );

AddGroup( 0, _T("Group 0") );
AddGroup( 1, _T("Group 1") );
AddGroup( 2, _T("Group 2") );

m_list.InsertColumn( 0, _T("Col"), LVCFMT_LEFT, 150 );

for ( int i = 0; i< 10; i++ )
{
CString str;
str.Format( _T("Item %d"), i );

m_list.InsertItem( i, str );
MoveItemToGroup(i, i%3);
}

return TRUE; // return TRUE unless you set the focus to a control
}

void CListCtrlTestDlg::SetGroupColor()
{
LVGROUPMETRICS metrics;
ZeroMemory( &metrics, sizeof(LVGROUPMETRICS) );
metrics.cbSize = sizeof( LVGROUPMETRICS );
metrics.mask = LVGMF_TEXTCOLOR;
metrics.crHeader = RGB(0,255,0); // Green
m_list.SetGroupMetrics( &metrics );
}

void CListCtrlTestDlg::AddGroup( int iIndex, CString strHeader )
{
LVGROUP group;
ZeroMemory( &group, sizeof( LVGROUP ) );
group.cbSize = sizeof( LVGROUP );
group.iGroupId = iIndex;
group.mask = LVGF_HEADER | LVGF_GROUPID | LVGF_STATE;
group.state = LVGS_NORMAL;
group.pszHeader = strHeader.GetBuffer();
group.cchHeader = strHeader.GetLength();

m_list.InsertGroup( iIndex, &group );
strHeader.ReleaseBuffer();
}

void CListCtrlTestDlg::MoveItemToGroup( int iItemIndex, int iGroupID )
{
LVITEMW lvItem;
lvItem.mask = LVIF_GROUPID;
lvItem.iItem = iItemIndex;
lvItem.iSubItem = 0;
lvItem.iGroupId = iGroupID;

m_list.SetItem( &lvItem );

}

[3738 byte] By [a_marks] at [2008-1-4]
# 1

These properties are now documented as "not implemented." See http://msdn2.microsoft.com/en-us/library/ms670565.aspx .

PeterDonnelly-MSFTUE at 2007-9-26 > top of Msdn Tech,Software Development for Windows Vista,UI Development for Windows Vista...

Software Development for Windows Vista

Site Classified