CListBox框架
一:詞條簡介函數
CObject←CCmdTarget←CWnd←CListBoxspa
CListBox類提供Windows列表框的功能。列表框顯示項的列表,如用戶能夠見到和選擇的文件名稱。在單選列表框裏,用戶只可選擇一個項。在多選列表框裏,可選擇許多項。當用戶選擇某項時,其高亮顯示且列表框給父窗口發送一個通知消息。指針
可從對話模板或直接在你的代碼中建立列表框。直接建立時,構造CListBox對象,再調用Create成員函數建立Windows列表框控件並將其附加給CListBox對象。要在對話模板中使用列表框,可在對話框類中聲明一個CListbox 變量,再在對話框類的DoDataExchange中使用DDX_Control鏈接成員變量到此控件(當向對話框類中添加控件變量時,ClassWizard自動爲你實現)。對象
構造函數能夠是從CListBox派生的類的一個單步進程。爲派生類寫構造函數並從中調用Create。若是要處理由列表框發送到其父親(一般爲從CDialog派生的類)的Windows通知消息,爲每一個消息添加消息映射入口和消息處理成員函數到父類。索引
每一個消息映射入口有如下形式:進程
ON_Notification( id,memberFxn )內存
id 指定發送通知的列表框控件的子窗口,memberFxn 是編寫處理通知的父成員函數名的地方。資源
父函數原型以下:字符串
afx_msg void memberFxn( );
下面是可能的消息映射入口列表和描述它們可能被髮送到父親的狀況:
ON_LBN_DBLCLK 用戶雙擊列表框中的字符串。只有LBS_NOTIFY風格的列表框纔會發送此通知消息。
ON_LBN_ERRSPACE 列表框不能從新分配足夠的內存來知足請求。
ON_LBN_KILLFOCUS 列表框正失去輸入焦點。
ON_LBN_SELCANCEL 當前列表框選擇被取消。此消息只有在列表框是LBS_NOTIFY風格時才發送。
ON_LBN_SELCHANGE 列表框中的選擇可能改變。若是選擇被CListBox::SetCurSel成員函數改變,則通知不發送。此通知只適用於LBS_NOTIFY風格的列表框。不管什麼時候用戶按下箭頭鍵,即便選擇未改變,LBN_SELCHANGE通知消息都被髮送給多選列表框。
ON_LBN_SETFOCUS 列表框正在接收輸入焦點。
ON_WM_CHARTOITEM 一個無字符串的自繪製列表接受WM_CHAR消息。
ON_WM_VKEYTOITEM LBS_WANTKEYBOARDINPUT風格的列表框接受WM_KEYDOWN消息。
若是在對話框中構造一個CListBox對象(經過對話資源),當用戶關閉對話框時,CListBox對象自動譭棄。
若是在窗口中構造一個CListBox對象,可能須要譭棄CListBox對象。若是在棧上建立CListBox對象,它會自動譭棄。若是使用new函數在堆上建立CListBox對象,必須對此對象調用delete來在用戶關閉父窗口時譭棄它。
若是在CListBox對象中分配內存,可覆蓋CListBox析構程序釋放分配的內存。
#include <afxwin.h>
請參閱:CWnd, CButton, CComboBox, CEdit, CScrollBar, CStatic
二:類成員
CListBox類的成員
構造函數 CListBox 構造一個CListBox對象
初始化 Create 建立Windows列表框並附加給CListBox對象
InitStorage 爲列表框的項和字符串預分配內存塊
通常操做:
GetCount 返回列表框中的字符串數目
GetHorizontalExtent 返回列表框的水平寬度,用像素表示
SetHorizontalExtent 設置列表框的水平寬度,用像素表示
GetTopIndex 返回列表框中第一個可見字符串的索引
SetTopIndex 設置列表框中第一個可見字符串的基於零的索引
GetItemData 返回與列表框有關的32位值
GetItemDataPtr 返回指向列表框的指針
SetItemData 設置列表框有關的32位值
SetItemDataPtr 設置指向列表框的指針
GetItemRect 返回當前顯示的列表框項的相應矩形
ItemFromPoint 返回與某點最近的列表框項的索引
SetItemHeight 設置列表框中項的高度
GetItemHeight 肯定列表框中項的高度
GetSel 返回列表框某項的選擇
GetText 拷貝某列表框項到緩衝區
GetTextLen 返回列表框的字節長
SetColumnWidth 設置多列列表框的列寬
SetTabStops 設置列表框製表鍵中止位置
GetLocale 獲取列表框的地點標識符
SetLocale 設置列表框的地點標識符
單選操做 GetCurSel 返回列表框中當前選擇串的基於零的索引
SetCurSel 選擇一個列表框字符串
多選操做 SetSel 在多選列表框中選擇或不選某個列表框項
GetCaretIndex 肯定在多選列表框中有焦點矩形的項的索引
SetCaretIndex 設置焦點矩形到多選列表框中的指定的索引項
GetSelCount 返回多選列表框中當前選擇的字符串的數目
GetSelItems 返回列表框中當前選擇的字符串的索引
SelItemRange 選擇/不選多選列表框中的一些字符串
SetAnchorIndex 設置多選列表框的錨點以開始擴展選擇
GetAnchorIndex 獲取列表框當前錨點項的基於零的索引
字符串操做:
AddString 添加一個字符串到列表框中
DeleteString 從列表框中刪除一個字符串
InsertString 在列表框中指定位置插入一個字符串
ResetContent 清空列表框全部入口
Dir 從當前目錄添加文件名稱到列表框中
FindString 在列表框中查找一個字符串
FindStringExact 查找與指定的字符串匹配的第一個列表框字符串
SelectString 查找並選擇單選列表框中的一個字符串
可覆蓋的函數 DrawItem 當自繪製列表框的一個可視部分改變時,被框架調用
MeasureItem 當自繪製列表框建立時,被框架調用來肯定列表框維數
CompareItem 被框架調用以肯定一系列列表框中某新項的位置
DeleteItem 當用戶從自繪製列表框中刪除某項時,被框架調用
VKeyToItem 覆蓋以提供LBS_WANTKEYBOARDINPUT風格列表框的設置所需的定製WM_KEYDOWN
CharToItem 覆蓋以提供不含字符串的自繪製列表框定製WM_CHAR
三:構造函數
CListBox::CListBox
CListBox( );
說明:
分兩步構造一個CListBox對象。首先調用構造函數CListBox,再調用Create,初始化Windows列表框並將其附加給CListBox。
請參閱:CListBox::Create