📄 qqlistview.h
字号:
#if !defined(AFX_QQLISTVIEW_H__BDE496EA_125B_48DF_8000_11B2E538F104__INCLUDED_)
#define AFX_QQLISTVIEW_H__BDE496EA_125B_48DF_8000_11B2E538F104__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// QQListView.h : header file
//
#include <afxcview.h>
/////////////////////////////////////////////////////////////////////////////
// CQQListView view
class CQQListView : public CListView
{
public:
CQQListView(); // protected constructor used by dynamic creation
DECLARE_DYNCREATE(CQQListView)
// Attributes
public:
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CQQListView)
protected:
virtual void OnDraw(CDC* pDC); // overridden to draw this view
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CQQListView();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
public:
void InitListView(HWND hWnd);
void SelectAll(){
for(int count=GetItemCount()-1;count>=0;count--)
SetItemState(count, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
}
CQQClientBase *GetListViewItem(int index);
void SetItem(DWORD QQ,int subitem,LPCSTR lpText);
int FindListViewItem(DWORD QQ);
void OnSortBy(int iSubItem);
void AddQQ(CQQClientBase *&lpQQClientBase);
enum{COL_QQ=0,COL_STATUS,COL_LEVEL,COL_ONLINE,COL_SPACE};
void SetColStatus(DWORD QQ,LPSTR lpText){SetItem(QQ,COL_STATUS,lpText);}
void SetColLevel(DWORD QQ,LPSTR lpText){SetItem(QQ,COL_LEVEL,lpText);}
void SetColOnline(DWORD QQ,LPSTR lpText){SetItem(QQ,COL_ONLINE,lpText);}
void SetColSpace(DWORD QQ,LPSTR lpText){SetItem(QQ,COL_SPACE,lpText);}
int GetItemCount(){
return (int)SendMessage(LVM_GETITEMCOUNT);
}
BOOL SetItemState(int nItem, UINT nState, UINT nStateMask){
LVITEM lvi = { 0 };
lvi.state = nState;
lvi.stateMask = nStateMask;
return (BOOL)SendMessage(LVM_SETITEMSTATE, nItem, (LPARAM)&lvi);
}
DWORD SetExtendedListViewStyle(DWORD dwExStyle, DWORD dwExMask = 0){
return (DWORD)SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, dwExMask, dwExStyle);
}
typedef struct TAddColumnsStruct{
LPTSTR pszText;
int fmt;
int cx;
}*PAddColumnsStruct;
int InsertColumn(int nCol, const LVCOLUMN* pColumn){
return (int)SendMessage(LVM_INSERTCOLUMN, nCol, (LPARAM)pColumn);
}
void AddColumns(PAddColumnsStruct ColArray,int Num,int StartNum=0){
LVCOLUMN lc;
lc.mask=LVCF_TEXT | LVCF_WIDTH | LVCF_FMT;
for(int p=0;p<Num;p++){
lc.pszText=ColArray[p].pszText;
lc.fmt=ColArray[p].fmt;
lc.cx=ColArray[p].cx;
InsertColumn(p+StartNum,&lc);
}
}
DWORD_PTR GetItemData(int nItem){
LVITEM lvi = { 0 };
lvi.iItem = nItem;
lvi.mask = LVIF_PARAM;
BOOL bRet = (BOOL)SendMessage(LVM_GETITEM, 0, (LPARAM)&lvi);
return (DWORD_PTR)(bRet ? lvi.lParam : NULL);
}
BOOL SetItem(const LVITEM* pItem){
return (BOOL)SendMessage(LVM_SETITEM, 0, (LPARAM)pItem);
}
int InsertItem(const LVITEM* pItem){
return (int)SendMessage(LVM_INSERTITEM, 0, (LPARAM)pItem);
}
BOOL SetColumn(int nCol, const LVCOLUMN* pColumn){
return (BOOL)SendMessage(LVM_SETCOLUMN, nCol, (LPARAM)pColumn);
}
void SetSelectedColumn(int nColumn){
#define LVM_SETSELECTEDCOLUMN (LVM_FIRST + 140)
SendMessage(LVM_SETSELECTEDCOLUMN, nColumn);
}
BOOL SortItemsEx(PFNLVCOMPARE pfnCompare, LPARAM lParamSort){
return (BOOL)SendMessage(LVM_SORTITEMSEX, (WPARAM)lParamSort, (LPARAM)pfnCompare);
}
UINT GetItemState(int nItem, UINT nMask){
return (UINT)SendMessage(LVM_GETITEMSTATE, nItem, nMask);
}
BOOL DeleteItem(int nItem){
return (BOOL)SendMessage(LVM_DELETEITEM, nItem);
}
// Generated message map functions
protected:
//{{AFX_MSG(CQQListView)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_QQLISTVIEW_H__BDE496EA_125B_48DF_8000_11B2E538F104__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -