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
當自繪制控件的可視部分改變時被調用