📄 listviewctrlex.cpp
字号:
/******************************************************************************
$Author$
$Modtime$
$Revision$
Description: Implementation of class "CListBase"
(list control with sort icons and colored sort column)
$Log$
******************************************************************************/
#include "stdafx.h"
//#include <afxtempl.h>
//#include "PcShare.h"
#include "ListViewCtrlEx.h"
/*** Defines not yet available in MS VC++ 6.0 ********************************/
#ifndef HDF_SORTUP
#define HDF_SORTUP 0x0400
#endif
#ifndef HDF_SORTDOWN
#define HDF_SORTDOWN 0x0200
#endif
#ifndef IDC_HAND
#define IDC_HAND MAKEINTRESOURCE(32649)
#endif
/*** Definition of class "CListCtrlEx" ***************************************/
IMPLEMENT_DYNCREATE(CListCtrlEx, CListCtrl)
/*** Protected member functions **********************************************/
/*** A column header has been clicked ****************************************/
BOOL CListCtrlEx::OnColumnclick(NMHDR* pNMHDR, LRESULT* pResult)
{
return CListBase::OnColumnclick(pNMHDR, pResult);
}
/*** An item in the column selection 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)
{
CListBase::OnContextMenu(pWnd);
}
/*** 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();
}
/*** 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 text of a list view item or subitem will be retrieved ***************/
LRESULT CListCtrlEx::OnGetItemText(WPARAM wParam, LPARAM lParam)
{
return CListBase::OnGetItemText(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 has been moved ************************************************/
void CListCtrlEx::OnMouseMove(UINT, CPoint point)
{
CListBase::OnMouseMove(point);
}
/*** 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 virtual list view control have ****/
/*** been changed ****/
BOOL CListCtrlEx::OnODCacheHint(NMHDR* pNMHDR, LRESULT*)
{
return CListBase::OnODCacheHint(pNMHDR);
}
/*** The background color of the list view control will be set ***************/
LRESULT CListCtrlEx::OnSetBkColor(WPARAM, LPARAM)
{
return CListBase::OnSetBkColor();
}
/*** The attributes of a list view column will be set ************************/
LRESULT CListCtrlEx::OnSetColumn(WPARAM wParam, LPARAM lParam)
{
return CListBase::OnSetColumn(wParam, lParam);
}
/*** The left-to-right order of columns in a list view control will be set ***/
LRESULT CListCtrlEx::OnSetColumnOrderArray(WPARAM wParam, LPARAM lParam)
{
return CListBase::OnSetColumnOrderArray(wParam, lParam);
}
/*** The width of a column in a list view control will be changed ************/
LRESULT CListCtrlEx::OnSetColumnWidth(WPARAM wParam, LPARAM lParam)
{
return CListBase::OnSetColumnWidth(wParam, lParam);
}
/*** The extended list view style will be set ********************************/
LRESULT CListCtrlEx::OnSetExtendedStyle(WPARAM wParam, LPARAM lParam)
{
return CListBase::OnSetExtendedStyle(wParam, lParam);
}
/*** List control gains input focus ******************************************/
void CListCtrlEx::OnSetFocus(CWnd*)
{
CListBase::OnSetFocus();
}
/*** An image list will be assigned ******************************************/
LRESULT CListCtrlEx::OnSetImageList(WPARAM wParam, LPARAM lParam)
{
return CListBase::OnSetImageList(wParam, lParam);
}
/*** Some or all of a list view item's attributes will be set ****************/
LRESULT CListCtrlEx::OnSetItem(WPARAM, LPARAM lParam)
{
return CListBase::OnSetItem(lParam);
}
/*** The text of an item or a subitem in a list view control will be changed */
LRESULT CListCtrlEx::OnSetItemText(WPARAM wParam, LPARAM lParam)
{
return CListBase::OnSetItemText(wParam, lParam);
}
/*** The items of a list view control will be sorted *************************/
LRESULT CListCtrlEx::OnSortItems(WPARAM wParam, LPARAM lParam)
{
return CListBase::OnSortItems(wParam, lParam);
}
/*** System colors have been changed *****************************************/
void CListCtrlEx::OnSysColorChange()
{
CListBase::OnSysColorChange();
}
/*** Table of message handlers ***********************************************/
BEGIN_MESSAGE_MAP(CListCtrlEx, CListCtrl)
//{{AFX_MSG_MAP(CListCtrlEx)
ON_WM_SYSCOLORCHANGE()
ON_WM_ERASEBKGND()
ON_WM_HSCROLL()
ON_WM_KILLFOCUS()
ON_WM_SETFOCUS()
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONDBLCLK()
ON_WM_KEYDOWN()
ON_WM_KEYUP()
ON_WM_MOUSEMOVE()
ON_WM_LBUTTONUP()
ON_WM_DESTROY()
ON_WM_CONTEXTMENU()
//}}AFX_MSG_MAP
ON_MESSAGE(LVM_DELETEALLITEMS, OnDeleteAllItems)
ON_MESSAGE(LVM_DELETECOLUMN, OnDeleteColumn)
ON_MESSAGE(LVM_DELETEITEM, OnDeleteItem)
ON_MESSAGE(LVM_FINDITEM, OnFindItem)
ON_MESSAGE(LVM_GETCOLUMN, OnGetColumn)
ON_MESSAGE(LVM_GETCOLUMNORDERARRAY, OnGetColumnOrderArray)
ON_MESSAGE(LVM_GETCOLUMNWIDTH, OnGetColumnWidth)
ON_MESSAGE(LVM_GETEXTENDEDLISTVIEWSTYLE , OnGetExtendedStyle)
ON_MESSAGE(LVM_GETITEM, OnGetItem)
ON_MESSAGE(LVM_GETITEMTEXT, OnGetItemText)
ON_MESSAGE(LVM_HITTEST, OnHitTest)
ON_MESSAGE(LVM_INSERTCOLUMN, OnInsertColumn)
ON_MESSAGE(LVM_INSERTITEM, OnInsertItem)
ON_MESSAGE(LVM_SETBKCOLOR, OnSetBkColor)
ON_MESSAGE(LVM_SETCOLUMN, OnSetColumn)
ON_MESSAGE(LVM_SETCOLUMNORDERARRAY, OnSetColumnOrderArray)
ON_MESSAGE(LVM_SETCOLUMNWIDTH, OnSetColumnWidth)
ON_MESSAGE(LVM_SETEXTENDEDLISTVIEWSTYLE , OnSetExtendedStyle)
ON_MESSAGE(LVM_SETIMAGELIST, OnSetImageList)
ON_MESSAGE(LVM_SETITEM, OnSetItem)
ON_MESSAGE(LVM_SETITEMTEXT, OnSetItemText)
ON_MESSAGE(LVM_SORTITEMS, OnSortItems)
ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)
ON_NOTIFY_REFLECT_EX(LVN_COLUMNCLICK, OnColumnclick)
ON_NOTIFY_REFLECT_EX(LVN_GETDISPINFO, OnGetdispinfo)
ON_NOTIFY_REFLECT_EX(LVN_ODCACHEHINT, OnODCacheHint)
END_MESSAGE_MAP()
/*** Definition of class "CListViewEx" ***************************************/
IMPLEMENT_DYNCREATE(CListViewEx, CListView)
/*** Protected member functions **********************************************/
/*** A column header has been clicked ****************************************/
BOOL CListViewEx::OnColumnclick(NMHDR* pNMHDR, LRESULT* pResult)
{
return CListBase::OnColumnclick(pNMHDR, pResult);
}
/*** An item in the column selection menu has been selected ******************/
BOOL CListViewEx::OnCommand(WPARAM wParam, LPARAM)
{
return CListBase::OnCommand(wParam);
}
/*** The user has right clicked the mouse ************************************/
void CListViewEx::OnContextMenu(CWnd* pWnd, CPoint)
{
CListBase::OnContextMenu(pWnd);
}
/*** A list view (sub)item will be drawn *************************************/
void CListViewEx::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
{
CListBase::OnCustomDraw(pNMHDR, pResult);
}
/*** All items from a list view control will be removed **********************/
LRESULT CListViewEx::OnDeleteAllItems(WPARAM, LPARAM)
{
return CListBase::OnDeleteAllItems();
}
/*** A column in a list view control will be deleted *************************/
LRESULT CListViewEx::OnDeleteColumn(WPARAM wParam, LPARAM)
{
return CListBase::OnDeleteColumn(wParam);
}
/*** An item from a list view control will be removed ************************/
LRESULT CListViewEx::OnDeleteItem(WPARAM wParam, LPARAM)
{
return CListBase::OnDeleteItem(wParam);
}
/*** The list view control will be destroyed *********************************/
void CListViewEx::OnDestroy()
{
CListBase::OnDestroy();
}
/*** The background will be erased *******************************************/
BOOL CListViewEx::OnEraseBkgnd(CDC* pDC)
{
return CListBase::OnEraseBkgnd(pDC);
}
/*** A specific item of a list view control will be searched *****************/
LRESULT CListViewEx::OnFindItem(WPARAM wParam, LPARAM lParam)
{
return CListBase::OnFindItem(wParam, lParam);
}
/*** The attributes of a list view control's column will be retrieved ********/
LRESULT CListViewEx::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 CListViewEx::OnGetColumnOrderArray(WPARAM wParam, LPARAM lParam)
{
return CListBase::OnGetColumnOrderArray(wParam, lParam);
}
/*** The width of a column in a list view control will be retrieved **********/
LRESULT CListViewEx::OnGetColumnWidth(WPARAM wParam, LPARAM)
{
return CListBase::OnGetColumnWidth(wParam);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -