📄 listctrlbase.cpp
字号:
// ListCtrlBase.cpp : implementation file
//
#include "stdafx.h"
//#include "Kvip.h"
#include "ListCtrlBase.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CListCtrlBase
CListCtrlBase::CListCtrlBase()
{
}
CListCtrlBase::~CListCtrlBase()
{
}
BEGIN_MESSAGE_MAP(CListCtrlBase, CListCtrl)
//{{AFX_MSG_MAP(CListCtrlBase)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CListCtrlBase message handlers
int CListCtrlBase::InsertColumn(int nCol, LPCTSTR lpszColumnHeading, int nFormat, int nWidth, int nSubItem)
{
return CListCtrl::InsertColumn(nCol, lpszColumnHeading, nFormat, nWidth, nSubItem);
}
BOOL CListCtrlBase::DeleteAllItems()
{
return CListCtrl::DeleteAllItems();
}
BOOL CListCtrlBase::SetItemText(int nItem, int nSubItem, LPCTSTR lpszText)
{
return CListCtrl::SetItemText(nItem, nSubItem, lpszText);
}
int CListCtrlBase::InsertItem( int nItem, LPCTSTR lpszItem )
{
return CListCtrl::InsertItem(nItem, lpszItem );
}
BOOL CListCtrlBase::DeleteItem(int iItem)
{
return CListCtrl::DeleteItem(iItem);
}
int CListCtrlBase::GetSelected()
{
int nItem = -1;
POSITION pos = CListCtrl::GetFirstSelectedItemPosition();
if(pos) nItem = CListCtrl::GetNextSelectedItem(pos);
return nItem;
}
int CListCtrlBase::GetSubItem(LPCSTR pItemName)
{
CString sName;
char buf[129];
HDITEM Item;
CHeaderCtrl *pHeader = GetHeaderCtrl();
if(pHeader == NULL) return -1;
for(int i = 0; i < pHeader->GetItemCount( ) ; i++)
{
memset(&Item, 0, sizeof(HDITEM));
Item.mask = HDI_TEXT;
Item.pszText = buf;
Item.cchTextMax = 128;
pHeader->GetItem(i, &Item);
sName = Item.pszText;
sName.TrimLeft(); sName.TrimRight();
if (sName == pItemName) return i;
}
return -1;
}
BOOL CListCtrlBase::UnSelectItem(int nItem)
{
return SetItemState(nItem, 0, LVIS_SELECTED);
}
BOOL CListCtrlBase::MoveToBottom(int nItem)
{
return MoveDown(nItem, GetItemCount() - nItem - 1);
}
BOOL CListCtrlBase::MoveToTop(int nItem)
{
// return MoveUp(nItem, nItem);
SCROLLINFO si;
WPARAM wParam;
si.cbSize = sizeof (si) ;
si.fMask = SIF_ALL ;
CListCtrlBase::GetScrollInfo(SB_VERT, &si);
if (si.nMax < (int)si.nPage) return true;
while(nItem < (int)si.nPos)
{
wParam = MAKEWPARAM(SB_LINEUP, 1);
SendMessage(WM_VSCROLL, wParam, (LPARAM)(HWND)this);
nItem++;
}//下滚
if(nItem >= (int)(si.nPos + si.nPage)) nItem += si.nPage;
while(nItem >= (int)(si.nPos + si.nPage))
{
wParam = MAKEWPARAM(SB_LINEDOWN, 1);
SendMessage(WM_VSCROLL, wParam, (LPARAM)(HWND)this);
nItem--;
}//上滚
return true;
}
BOOL CListCtrlBase::SelectItem(int nItem)
{
return SetItemState(nItem, LVIS_SELECTED, LVIS_SELECTED);
}
BOOL CListCtrlBase::MoveUp(int nItem, int nCount)
{
if (nCount < 0)
return MoveDown(nItem, 0 - nCount);
/*
for (int i = nItem; i > nItem - nCount; i--)
{
if (!SwapItems(i, i - 1))
return FALSE;
}
*/
return TRUE;
}
BOOL CListCtrlBase::MoveDown(int nItem, int nCount)
{
if (nCount < 0)
return MoveUp(nItem, 0 - nCount);
/*
for (int i = nItem; i < nItem + nCount; i++)
{
if (!SwapItems(i, i + 1))
return FALSE;
}
*/
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -