CListCtrl CListCtrl類封裝“列表視圖控制項”功能,顯示每個包含圖標(列表視圖中)和標簽的收集。除圖標和標簽外,每一項還能有顯示在圖標和標簽的右邊的列中的信息。視圖 列表視圖控制項可用四種不同方式顯示其內容,稱為“視圖”。 擴展風格 除了標準列表風格,類CListCtrl支持一系列提供豐 ...
CListCtrl
CCmdTarget |
└CListCtrl |
CListCtrl類封裝“列表視圖控制項”功能,顯示每個包含圖標(列表視圖中)和標簽的收集。除圖標和標簽外,每一項還能有顯示在圖標和標簽的右邊的列中的信息。
視圖
列表視圖控制項可用四種不同方式顯示其內容,稱為“視圖”。
. | 圖標視圖 每一項以全尺寸圖標(32×32像素)出現,下麵有一個標簽。用戶可在列表視圖視窗拖動項到任意位置。 |
· | 小圖標 視圖每一項以小圖標(16×16像素)出現,右邊有一個標簽。用戶可在列表視圖視窗拖動項到任意位置。 |
· | 列表視圖 每一項以小圖標出現,下麵有一個標簽。項按列排列,不能拖動到列表視圖視窗的任何位置。 |
· | 報表視圖 每一項在本行上出現,右邊有排列成列的附加信息。最左邊的列包含小圖標和標簽,下一列包含應用指定的子項。嵌入標題控制項實現這些列。 |
擴展風格
除了標準列表風格,類CListCtrl支持一系列提供豐富功能的擴展風格。此功能的一些示例包括:
· | 逗留選擇 有效時,若游標保持在某項上一段時間,則允許自動選擇該項。 |
· | 虛列表視圖 如果有效,允許控制項支持DWORD項。通過把管理應用項數據放在最頂上而成為可能。除了項選擇和焦點信息,所有項信息必須由應用管理。 |
· | 單擊或雙擊激活 如果有效,允許熱跟蹤(項文本自動高亮顯示)和高亮顯示項的單擊和雙擊激活。 |
· | 拖放列表命令 如果有效,允許拖放列表視圖控制項中列的記錄。只對報表視圖有效。 |
項和子項
列表視圖控制項中的每一項含有一個圖標、一個標簽、一個當前狀態和應用定義值(稱為“項數據”)。一個或更多子項還可與每一項聯繫。一個“子項”是一個字元串,在報表視圖中可顯示在項圖標和標簽右邊的列里。列表視圖控制項中的每一項都必須與子項數目相同。
類CListCtrl提供一些函數來插入、刪除、查找和更改這些項。
請參閱CListCtrl::GetItem,CListCtrl::InsertItem和CListCtrl::FindItem。
預設時,列表視圖控制項負責存儲一個項的圖標和文本屬性。然而,除了這些項類型外,類CListCtrl支持“回調項”。一個“回調項”是一個列表視圖項,每個應用棗而不是控制項棗存儲文本,圖標或兩者。回調掩碼用於指定哪個項的屬性(文本和/或圖標)由應用提供。
如果應用使用回調項,它必須可以提供按需要提供文本和/或圖標屬性。回調項在你的應用已有部分這種信息時很有幫助。要瞭解更多信息,請參閱CListCtrl::GetCallBackMask和“使用CListCtrl:回調項和回調掩碼”。
圖象列表
圖標、標題項圖象和應用定義的列表視圖項狀態包含在一些圖象列表中(由類CImageList實現),可創建和指派到列表視圖控制項中。每個列表視圖控制項可有四個以上的圖象列表類型:
· | 大圖標 在圖標視圖中使用,得到全尺寸圖標。 |
· | 小圖標 用於小圖標、列表和報表視圖中,得到圖標視圖中使用的小版本的圖標。 |
· | 應用定義的狀態 包含狀態圖象,在項圖標旁顯示以指示一個應用定義狀態。 |
· | 標題項 用於在報表視圖中,得到出現在每個標題控制項項中的小圖象。 |
預設時,列表視圖控制項刪除指派給它的圖象列表(當它刪除時);然而,開發者可通過刪除由應用定義的不再使用的圖象列表。要瞭解更多信息,請參閱聯機文檔“Visual
C++程式員指南”中的“使用CListCtrl:列表項和圖象列表”。
#include <afxcmn.h>
請參閱:CImageList
CListCtrl類的成員
構造函數
ClistCtrl | 構造一個CListCtrl對象 |
Create | 創建列表控制項並將其附加給CListCtrl對象 |
屬性
GetBkColor | 獲取列表視圖控制項的背景色 |
SetBkColor | 設置列表視圖控制項的背景色 |
GetImageList | 獲取用於繪製列表視圖項的圖象列表的句柄 |
SetImageList | 指定一個圖象列表到列表視圖控制項 |
GetItemCount | 獲取列表視圖控制項中的項的數量 |
GetItem | 獲取列表視圖項的屬性 |
GetCallbackMask | 獲取列表視圖控制項的回調掩碼 |
SetCallbackMask | 設置列表視圖控制項的回調掩碼 |
GetNextItem | 查找指定特性和指定指定項關係的列表視圖項 |
GetFirstSeletedItemPosition | 在列表視圖控制項中獲取第一個選擇的列表視圖項的位置 |
GetNextSeletedItem | 為重覆而獲取下一個選擇的列表視圖 |
GetItemRect | 獲取項的有界矩形 |
SetItemPosition | 在列表視圖控制項中移動一項到指定位置 |
GetItemPosition | 獲取列表視圖項的位置 |
GetStringWidth | 指定需要顯示所有指定字元串的最小列寬 |
GetEditControl | 獲取用於編輯一個項文本的編輯控制項的句柄 |
GetColumn | 獲取控制項的列的屬性 |
SetColumn | 設置列表視圖列的屬性 |
GetColumnWidth | 獲取報表視圖或列表視圖中的列的寬度 |
SetColumnWidth | 改變報表視圖或列表視圖中的列的寬度 |
GetCheck | 獲取與某項相關的狀態圖象的當前顯示狀態 |
SetCheck | 設置與某項相關的狀態圖象的當前顯示狀態 |
GetViewRect | 獲取列表視圖控制項中所有項的有界矩形 |
GetTextColor | 獲取列表視圖控制項的文本顏色 |
SetTextColor | 設置列表視圖控制項的文本顏色 |
GetTextBkColor | 獲取列表視圖控制項的文本背景色 |
SetTextBkColor | 設置列表視圖控制項的文本背景色 |
GetTopIndex | 獲取最高級項的索引 |
GetCountPerPage | 計算可正好垂直放入列表視圖控制項中的項的數目 |
GetOrigin | 獲取列表視圖控制項的最初的當前視圖 |
SetItemState | 改變列表視圖控制項的項的狀態 |
GetItemState | 獲取列表視圖控制項的項的狀態 |
GetItemText | 獲取列表視圖項或子項的文本 |
SetItemText | 設置列表視圖項或子項的文本 |
SetItemCount | 準備一個列表視圖控制項以添加大量的項 |
GetItemData | 獲取與某項相關的應用所指定的值 |
SetItemData | 設置項的應用指定的值 |
GetSelectedCount | 獲取列表視圖控制項中選擇項的數量 |
SetColumnOrderArray | 設置列表視圖控制項的列序(左或右) |
GetColumnOrderArray | 獲取列表視圖控制項的列序(左或右) |
SetIconSpacing | 設置列表視圖控制項中的圖標的距離 |
GetHeaderCtrl | 獲取列表視圖控制項的標題控制項 |
GetHotCursor | 獲取在熱調試對列表視圖控制項有效時使用的游標 |
SetHotCursor | 設置在熱調試對列表視圖控制項有效時使用的游標 |
GetSubItemRect | 獲取列表視圖控制項中某項的有界矩形 |
GetHotItem | 獲取當前在游標下的列表視圖項 |
SetHotItem | 設置列表視圖控制項的當前熱項 |
GetSelectionMark | 獲取列表視圖控制項的選擇屏蔽 |
SetSelectionMark | 設置列表視圖控制項的選擇屏蔽 |
GetExtendedStyle | 獲取列表視圖控制項的當前擴展風格 |
SetExtendedStyle | 設置列表視圖控制項的當前擴展風格 |
SubItemHitTest | 指定哪個列表視圖項在指定位置,若存在 |
GetWorkAreas | 獲取列表視圖控制項的當前工作區 |
GetNumberOfWorkAreas | 獲取列表視圖控制項的當前工作區數量 |
SetItemCountEx | 設置虛列表視圖控制項的項的數量 |
SetWorkAreas | 設置列表視圖控制項中圖標可以顯示的區域 |
ApproximateViewRect | 指定顯示列表視圖控制項項所需的寬度和高度 |
GetBkImage | 獲取列表視圖控制項的當前背景圖象 |
SetBkImage | 設置列表視圖控制項的當前背景圖象 |
GetHoverTime | 獲取列表視圖控制項的當前逗留時間 |
SetHoverTime | 設置列表視圖控制項的當前逗留時間 |
操作
InsertItem | 在列表視圖控制項中插入一個新項 |
DeleteItem | 從控制項中刪除一項 |
DeleteAllItems | 從控制項中刪除所有項 |
FindItem | 查找具有指定的字元的列表視圖項 |
SortItems | 使用應用定義的比較函數排序列表視圖項 |
HitTest | 指定哪個列表視圖在指定的位置上 |
EnsureVisible | 保證項是可見的 |
Scroll | 滾動列表視圖控制項的內容 |
ReDrawItems | 強迫列表視圖控制項刷新一些項 |
Update | 強迫控制項刷新一個指定的項 |
Arrange | 調整一欄里的項 |
EditLabel | 開始項文本該處編輯 |
InsertColumn | 插入列表視圖控制項中的新列 |
DeleteColumn | 從列表視圖控制項中刪除一列 |
CreateDragImage | 為指定的項構造一個拖動圖象列表 |
可覆蓋的函數
DrawItem | 當自繪製控制項的可視部分改變時被調用 |