/******************************************************************************
$Author$
$Modtime$
$Revision$
Description: Implementation of class "CListBase"
(list control with sort icons and colored sort column)
$Log$
******************************************************************************/
#include "stdafx.h"
#include "ListViewCtrlEx.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/*** Theme parts and states not defined in Visual Studio *********************/
#if _MSC_VER < 1500
enum NEW_LISTITEMSTATES
{
LISS_NORMAL = 1,
LISS_HOT = 2,
LISS_SELECTED = 3,
LISS_DISABLED = 4,
LISS_SELECTEDNOTFOCUS = 5,
LISS_HOTSELECTED = 6
};
#endif
/*** Definition of class "CListCtrlEx" ***************************************/
#ifndef NDEBUG
ATL::CTraceCategory ListCtrlEx(_T("ListCtrlEx"), 1);
#endif
IMPLEMENT_DYNCREATE(CListCtrlEx, CListCtrl)
/*** Protected member functions **********************************************/
/*** Label editing will be started *******************************************/
BOOL CListCtrlEx::OnBeginLabelEdit(NMHDR* pNMHDR, LRESULT*)
{
return CListBase::OnBeginLabelEdit(pNMHDR);
}
/*** Label editing will be cancelled *****************************************/
LRESULT CListCtrlEx::OnCancelEditLabel(WPARAM, LPARAM)
{
return CListBase::OnCancelEditLabel();
}
/*** A column header has been clicked ****************************************/
BOOL CListCtrlEx::OnColumnclick(NMHDR* pNMHDR, LRESULT* pResult)
{
return CListBase::OnColumnclick(pNMHDR, pResult);
}
/*** An item from a menu has been selected ***********************************/
BOOL CListCtrlEx::OnCommand(WPARAM wParam, LPARAM)
{
return CListBase::OnCommand(wParam);
}
/*** The user has right clicked the mouse ************************************/
void CListCtrlEx::OnContextMenu(CWnd* pWnd, CPoint point)
{
CListBase::OnContextMenu(pWnd, point);
}
/*** A list view (sub)item will be drawn *************************************/
void CListCtrlEx::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
{
CListBase::OnCustomDraw(pNMHDR, pResult);
}
/*** All items from a list view control will be removed **********************/
LRESULT CListCtrlEx::OnDeleteAllItems(WPARAM, LPARAM)
{
return CListBase::OnDeleteAllItems();
}
/*** A column in a list view control will be deleted *************************/
LRESULT CListCtrlEx::OnDeleteColumn(WPARAM wParam, LPARAM)
{
return CListBase::OnDeleteColumn(wParam);
}
/*** An item from a list view control will be removed ************************/
LRESULT CListCtrlEx::OnDeleteItem(WPARAM wParam, LPARAM)
{
return CListBase::OnDeleteItem(wParam);
}
/*** The list view control will be destroyed *********************************/
void CListCtrlEx::OnDestroy()
{
CListBase::OnDestroy();
}
/*** Label editing will be finished ******************************************/
BOOL CListCtrlEx::OnEndLabelEdit(NMHDR* pNMHDR, LRESULT*)
{
return CListBase::OnEndLabelEdit(pNMHDR);
}
/*** The background will be erased *******************************************/
BOOL CListCtrlEx::OnEraseBkgnd(CDC* pDC)
{
return CListBase::OnEraseBkgnd(pDC);
}
/*** A specific item of a list view control will be searched *****************/
LRESULT CListCtrlEx::OnFindItem(WPARAM wParam, LPARAM lParam)
{
return CListBase::OnFindItem(wParam, lParam);
}
/*** The attributes of a list view control's column will be retrieved ********/
LRESULT CListCtrlEx::OnGetColumn(WPARAM wParam, LPARAM lParam)
{
return CListBase::OnGetColumn(wParam, lParam);
}
/*** The current left-to-right order of columns in a list view control *******/
/*** will be retrieved *******/
LRESULT CListCtrlEx::OnGetColumnOrderArray(WPARAM wParam, LPARAM lParam)
{
return CListBase::OnGetColumnOrderArray(wParam, lParam);
}
/*** The width of a column in a list view control will be retrieved **********/
LRESULT CListCtrlEx::OnGetColumnWidth(WPARAM wParam, LPARAM)
{
return CListBase::OnGetColumnWidth(wParam);
}
/*** Information needed to display a list view item **************************/
BOOL CListCtrlEx::OnGetdispinfo(NMHDR* pNMHDR, LRESULT*)
{
return CListBase::OnGetdispinfo(pNMHDR);
}
/*** The extended list view style will be retrieved **************************/
LRESULT CListCtrlEx::OnGetExtendedStyle(WPARAM, LPARAM)
{
return m_dwExtendedStyle;
}
/*** Some or all of a list view item's attributes will be retrieved **********/
LRESULT CListCtrlEx::OnGetItem(WPARAM, LPARAM lParam)
{
return CListBase::OnGetItem(lParam);
}
/*** The rectangle bounding an item will be retrieved ************************/
LRESULT CListCtrlEx::OnGetItemRect(WPARAM wParam, LPARAM lParam)
{
return CListBase::OnGetItemRect(wParam, lParam);
}
/*** The text of a list view item or subitem will be retrieved ***************/
LRESULT CListCtrlEx::OnGetItemText(WPARAM wParam, LPARAM lParam)
{
return CListBase::OnGetItemText(wParam, lParam);
}
/*** The rectangle bounding a subitem will be retrieved **********************/
LRESULT CListCtrlEx::OnGetSubItemRect(WPARAM wParam, LPARAM lParam)
{
return CListBase::OnGetSubItemRect(wParam, lParam);
}
/*** The list-view item at a specified position will be determined ***********/
LRESULT CListCtrlEx::OnHitTest(WPARAM, LPARAM lParam)
{
return CListBase::OnHitTest(lParam);
}
/*** List control has been scrolled horizontally *****************************/
void CListCtrlEx::OnHScroll(UINT, UINT, CScrollBar*)
{
CListBase::OnHScroll();
}
/*** A new column in a list-view control will be inserted ********************/
LRESULT CListCtrlEx::OnInsertColumn(WPARAM wParam, LPARAM lParam)
{
return CListBase::OnInsertColumn(wParam, lParam);
}
/*** A new item in a list-view control will be inserted **********************/
LRESULT CListCtrlEx::OnInsertItem(WPARAM, LPARAM lParam)
{
return CListBase::OnInsertItem(lParam);
}
/*** A key has been pressed *************************************************/
void CListCtrlEx::OnKeyDown(UINT nChar, UINT, UINT)
{
CListBase::OnKeyDown(nChar);
}
/*** A key has been released *************************************************/
void CListCtrlEx::OnKeyUp(UINT nChar, UINT, UINT)
{
CListBase::OnKeyUp(nChar);
}
/*** List control loses input focus ******************************************/
void CListCtrlEx::OnKillFocus(CWnd*)
{
CListBase::OnKillFocus();
}
/*** The user double-clicks the left mouse button ****************************/
void CListCtrlEx::OnLButtonDblClk(UINT, CPoint point)
{
CListBase::OnLButtonDblClk(point);
}
/*** The user presses the left mouse button **********************************/
void CListCtrlEx::OnLButtonDown(UINT, CPoint point)
{
CListBase::OnLButtonDown(point);
}
/*** The user releases the left mouse button *********************************/
void CListCtrlEx::OnLButtonUp(UINT, CPoint)
{
CListBase::OnLButtonUp();
}
/*** The mouse cursor leaves the client area of this list view control *******/
LRESULT CListCtrlEx::OnMouseLeave(WPARAM, LPARAM)
{
return CListBase::OnMouseLeave();
}
/*** The mouse has been moved ************************************************/
void CListCtrlEx::OnMouseMove(UINT, CPoint point)
{
CListBase::OnMouseMove(point);
}
/*** The mouse wheel has been rotated ****************************************/
BOOL CListCtrlEx::OnMouseWheel(UINT, short, CPoint pt)
{
return CListBase::OnMouseWheel(pt);
}
/*** Divider in header control has been dragged ******************************/
BOOL CListCtrlEx::OnNotify(WPARAM, LPARAM lParam, LRESULT*)
{
return CListBase::OnNotify(lParam);
}
/*** The contents of the display area of a vir