⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clv_listview.h

📁 VC++视频开发实例集锦(包括“远程视频监控”"语音识别系统"等13个经典例子)
💻 H
字号:


////////////////////////////////////////////////////////////////////////////////




////////////////////////////////////////////////////////////////////////////////
//
// Custom ListView
//
////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////
//
typedef enum _CPe_CustomDrawColour
{
    cdcNormal,
    cdcHighlighted,
    cdcLowlighted
} CPe_CustomDrawColour;
//
typedef enum _CPe_ListColumnAlign
{
    lcaLeft,
    lcaCentre,
    lcaRight,
} CPe_ListColumnAlign;
//
////////////////////////////////////////////////////////////////////////////////




typedef const char*(*wp_GetItemText)(const void* pvItemData);
typedef CPe_CustomDrawColour(*wp_GetItemDrawColour)(const void* pvItemData);
typedef void* CP_HLISTVIEW;
////////////////////////////////////////////////////////////////////////////////
//
CP_HLISTVIEW CLV_Create(HWND hWndParent, const int iX, const int iY, const int iWidth, const int iHeight);
HWND CLV_GetHWND(CP_HLISTVIEW _hListData);
void CLV_BeginBatch(CP_HLISTVIEW _hListData);
void CLV_EndBatch(CP_HLISTVIEW _hListData);
//
// Header state
void CLV_AddColumn(CP_HLISTVIEW _hListData, const char* pcTitle, const int iWidth, wp_GetItemText pfnItemTextAccessor, const DWORD dwFlags);
void CLV_SetColumnCustomDrawColour(CP_HLISTVIEW _hListData, const int iColumnIDX, wp_GetItemDrawColour pfnGetCustomDrawColour);
void CLV_SetColumnAlign(CP_HLISTVIEW _hListData, const int iColumnIDX, const CPe_ListColumnAlign enNewAlign);
void CLV_SetColumnOrder(CP_HLISTVIEW _hListData, const unsigned int* pOrder, const unsigned int iNumColumnsInArray);
void CLV_GetColumnOrder(CP_HLISTVIEW _hListData, unsigned int* pOrder, const unsigned int iNumColumnsInArray);
void CLV_GetColumnVisibleState(CP_HLISTVIEW _hListData, BOOL* pStates, const unsigned int iNumColumnsInArray);
void CLV_GetColumnWidths(CP_HLISTVIEW _hListData, int* pWidths, const unsigned int iNumColumnsInArray);
//
// Items
int CLV_AddItem(CP_HLISTVIEW _hListData, const void* pvItemData);
void CLV_RemoveAllItems(CP_HLISTVIEW _hListData);
void CLV_SetItem(CP_HLISTVIEW _hListData, const int iItemIDX, const void* pvItemData);
void CLV_DeleteItem(CP_HLISTVIEW _hListData, const int iItemIDX);
int CLV_GetItemCount(CP_HLISTVIEW _hListData);
void CLV_InvalidateItem(CP_HLISTVIEW _hListData, const int iItemIDX);
void CLV_InvalidateColumn(CP_HLISTVIEW _hListData, const int iColumnIDX);
void CLV_Invalidate(CP_HLISTVIEW _hListData);
void CLV_SetItemData(CP_HLISTVIEW _hListData, const int iItemIDX, const void* pvItemData);
const void* CLV_GetItemData(CP_HLISTVIEW _hListData, const int iItemIDX);
int CLV_GetNearestItem(CP_HLISTVIEW _hListData, const POINT* ptMouse);
void CLV_GetItemSubRect(CP_HLISTVIEW _hListData, RECT* pRect, const int iItemIDX, const int iColumnIDX);
//
// Focus
void CLV_SetFocusItem(CP_HLISTVIEW _hListData, int iNewItemIDX);
int CLV_GetFocusItem(CP_HLISTVIEW _hListData);
//
// Selection
void CLV_ClearSelection(CP_HLISTVIEW _hListData);
int CLV_GetNextSelectedItem(CP_HLISTVIEW _hListData, const int iSearchStart);
int CLV_GetPrevSelectedItem(CP_HLISTVIEW _hListData, const int _iSearchStart);
void CLV_SetItemSelected(CP_HLISTVIEW _hListData, const int iItemIDX, const BOOL bSelected);
BOOL CLV_IsItemSelected(CP_HLISTVIEW _hListData, const int iItemIDX);
void CLV_EnsureVisible(CP_HLISTVIEW _hListData, const int iItemIDX);
////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////
// Callback handlers
typedef void (*wp_DrawBackgroundRect)(CPs_DrawContext* pDC);
void CLV_sethandler_DrawBackgroundRect(CP_HLISTVIEW _hListData, wp_DrawBackgroundRect pfnHandler);
//
typedef void (*wp_HeaderChanged)(CP_HLISTVIEW _hListData);
void CLV_sethandler_HeaderChanged(CP_HLISTVIEW _hListData, wp_HeaderChanged pfnHandler);
//
typedef void (*wp_ColHeaderClick)(CP_HLISTVIEW _hListData, const int iColIDX);
void CLV_sethandler_ColHeaderClick(CP_HLISTVIEW _hListData, wp_ColHeaderClick pfnHandler);
//
typedef void (*wp_UnhandledKeyPress)(CP_HLISTVIEW _hListData, const int iVKey, const BOOL bAlt, const BOOL bCtrl, const BOOL bShift);
void CLV_sethandler_UnhandledKeyPress(CP_HLISTVIEW _hListData, wp_UnhandledKeyPress pfnHandler);
//
// Item callbacks
typedef void (*wp_ItemCallback)(CP_HLISTVIEW _hListData, const int iItemIDX, const void* pItemData);
typedef void (*wp_ItemSubCallback)(CP_HLISTVIEW _hListData, const int iItemIDX, const int iColumnIDX, const void* pItemData);
//
void CLV_sethandler_ItemSelected(CP_HLISTVIEW _hListData, wp_ItemCallback pfnHandler);
void CLV_sethandler_ItemAction(CP_HLISTVIEW _hListData, wp_ItemCallback pfnHandler);
void CLV_sethandler_ItemDrag(CP_HLISTVIEW _hListData, wp_ItemCallback pfnHandler);
void CLV_sethandler_ItemRightClick(CP_HLISTVIEW _hListData, wp_ItemSubCallback pfnHandler);
////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////
// Column flags
#define CPLV_COLFLAG_NONE			0L
#define CPLV_COLFLAG_LOCKRESIZE		1L
#define CPLV_COLFLAG_NOHIDE			2L
#define CPLV_COLFLAG_HIDDEN			4L
//
// Item flags
#define CPLV_ITEMFLAG_NONE			0L
#define CPLV_ITEMFLAG_SELECTED		1L
//
// General
#define	CPC_INVALIDCOLUMN				-1
#define CPC_INVALIDITEM					-1
////////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -