www.pudn.com > FlatHeader_demo.zip > FlatListCtrl.cpp
/ FlatListCtrl.cpp : implementation file
//
#include "stdafx.h"
#include "FlatListCtrl.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFlatListCtrl
CFlatListCtrl::CFlatListCtrl()
{
}
CFlatListCtrl::~CFlatListCtrl()
{
}
BEGIN_MESSAGE_MAP(CFlatListCtrl, CListCtrl)
//{{AFX_MSG_MAP(CFlatListCtrl)
ON_NOTIFY_REFLECT(LVN_COLUMNCLICK, OnColumnClick)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFlatListCtrl message handlers
void CFlatListCtrl::PreSubclassWindow()
{
CListCtrl::PreSubclassWindow();
VERIFY(m_wndFlatHeader.SubclassWindow(::GetDlgItem(m_hWnd,0)));
}
void CFlatListCtrl::OnColumnClick(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
BOOL bSortAscending;
// If clicked on already sorted column, reverse sort order
if(pNMListView->iSubItem == m_wndFlatHeader.GetSortColumn(&bSortAscending))
bSortAscending = !bSortAscending;
else
bSortAscending = TRUE;
m_wndFlatHeader.SetSortColumn(pNMListView->iSubItem, bSortAscending);
// Do some sort of sorting...
*pResult = 0;
}