複製鏈接
請複製以下鏈接發送給好友

CListCtrl

鎖定
CListCtrl,是一種“列表視圖控件”,用於四種不同方式顯示其內容。
中文名
控件
外文名
CListCtrl
功    能
“列表視圖控件”
視    圖
可用四種不同方式顯示其內容

CListCtrl控件

CListCtrl類封裝了“列表視圖控件”功能,顯示每個包含圖標(列表視圖中)和標籤的收集。除圖標和標籤外,每一項還能有顯示在圖標和標籤右邊列中的信息。此控件(以及CListCtrl類)只適用於運行於Windows 95和Windows NT 3.51及更高版本的程序。
下面是CListCtrl類的主要概況。對於詳細的、概念性的討論,請參閲聯機文檔“Visual C++程序員指南”中的“使用ClistCtrl”和“控件主題”。

CListCtrl視圖

列表視圖控件可用四種不同方式顯示其內容,稱之為“視圖”。
圖標視圖:每一項以全尺寸圖標(32×32像素)出現,下面有一個標籤。用户可在列表視圖窗口拖動項到任意位置。
小圖標:視圖每一項以小圖標(16×16像素)出現,右邊有一個標籤。用户可在列表視圖窗口拖動項到任意位置。
列表視圖:每一項以小圖標出現,下面有一個標籤。項按列排列,不能拖動到列表視圖窗口的任何位置。
報表視圖:每一項在本行上出現,右邊有排列成列的附加信息。最左邊的列包含小圖標和標籤,下一列包含應用指定的子項。嵌入標題控件實現這些列。要了解報表視圖標題控件和列的更多信息,請參閲聯機文檔“Visual C++程序員指南”中的“使用CListCtrl:給控件添加列(報表視圖)”。
控件的當前列表視圖風格指定當前視圖。要了解這些風格及其用法的更多信息,請參閲聯機文檔“Visual C++程序員指南”中的“使用CListCtrl:改變列表控件風格”。

CListCtrl擴展風格

逗留選擇:有效時,若光標保持在某項上一段時間,則允許自動選擇該項。
虛列表視圖:如果有效,允許控件支持DWORD項。通過把管理應用項數據放在最頂上而成為可能。除了項選擇和焦點信息,所有項信息必須由應用管理。要了解更多信息,請參閲聯機文檔“Visual C++程序員指南”中的“使用CListCtrl:虛列表控件”。
單擊或雙擊激活:如果有效,允許熱跟蹤(項文本自動高亮顯示)和高亮顯示項的單擊和雙擊激活。
拖放列表命令:如果有效,允許拖放列表視圖控件中列的記錄。只對報表視圖有效。
要了解使用新擴展風格的更多信息,請參閲聯機文檔“Visual C++程序員指南”中的“使用CListCtrl:改變列表控件風格”。

CListCtrl項和子項

列表視圖控件中的每一項含有一個圖標、一個標籤、一個當前狀態和應用定義值(稱為“項數據”)。一個或更多子項還可與每一項聯繫。一個“子項”是一個字符串,在報表視圖中可顯示在項圖標和標籤右邊的列裏。列表視圖控件中的每一項都必須與子項數目相同。
類CListCtrl提供一些函數來插入、刪除、查找和更改這些項。要了解更多信息,請參閲“Visual C++程序員指南”中的“使用CListCtrl:列表控件中的滾動、排列、排序和查找”。同時請參閲CListCtrl::GetItem,CListCtrl::InsertItem和CListCtrl::FindItem。
缺省時,列表視圖控件負責存儲一個項的圖標和文本屬性。然而,除了這些項類型外,類CListCtrl支持“回調項”。一個“回調項”是一個列表視圖項,每個應用棗而不是控件棗存儲文本,圖標或兩者。回調掩碼用於指定哪個項的屬性(文本和/或圖標)由應用提供。如果應用使用回調項,它必須可以提供按需要提供文本和/或圖標屬性。回調項在你的應用已有部分這種信息時很有幫助。要了解更多信息,請參閲CListCtrl::GetCallBackMask和“使用CListCtrl:回調項和回調掩碼”。

CListCtrl圖象列表

圖標、標題項圖象和應用定義的列表視圖項狀態包含在一些圖象列表中(由類CImageList實現),可創建和指派到列表視圖控件中。每個列表視圖控件可有四個以上的圖象列表類型:
大圖標:在圖標視圖中使用,得到全尺寸圖標。
小圖標:用於小圖標、列表和報表視圖中,得到圖標視圖中使用的小版本的圖標。
應用定義的狀態:包含狀態圖象,在項圖標旁顯示以指示一個應用定義狀態。
標題項:用於在報表視圖中,得到出現在每個標題控件項中的小圖象。
缺省時,列表視圖控件刪除指派給它的圖象列表(當它刪除時);然而,開發者可通過刪除由應用定義的不再使用的圖象列表。
#include <afxcmn.h>
請參閲:CImageList

CListCtrl構造函數

CListCtrl類的成員
構造函數
ClistCtrl構造一個CListCtrl對象。
Create創建列表控件並將其附加給CListCtrl對象。
屬性
GetBkColor獲取列表視圖控件的背景色。
SetBkColor設置列表視圖控件的背景色。
GetImageList獲取用於繪製列表視圖項的圖象列表的句柄。
SetImageList指定一個圖象列表到列表視圖控件。
GetItemCount獲取列表視圖控件中的項的數量。
GetItem獲取列表視圖項的屬性。
GetCallbackMask獲取列表視圖控件的回調掩碼。
SetCallbackMask設置列表視圖控件的回調掩碼。
GetNextItem查找指定特性和指定指定項關係的列表視圖項。
GetFirstSelectedItemPosition在列表視圖控件中獲取第一個選擇的列表視圖項的位置。
GetNextSelectedItem為重複而獲取下一個選擇的列表視圖。
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當自繪製控件的可視部分改變時被調用。