class CListBox : public CWnd
{
DECLARE_DYNAMIC(CListBox)
// Constructors
public:
CListBox();
BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
// Attributes
// for entire listbox
int GetCount() const;
int GetHorizontalExtent() const;
void SetHorizontalExtent(int cxExtent);
int GetTopIndex() const;
int SetTopIndex(int nIndex);
LCID GetLocale() const;
LCID SetLocale(LCID nNewLocale);
#if (WINVER >= 0x400)
int InitStorage(int nItems, UINT nBytes);
UINT ItemFromPoint(CPoint pt, BOOL& bOutside) const;
#endif
// for single-selection listboxes
int GetCurSel() const;
int SetCurSel(int nSelect);
// for multiple-selection listboxes
int GetSel(int nIndex) const; // also works for single-selection
int SetSel(int nIndex, BOOL bSelect = TRUE);
int GetSelCount() const;
int GetSelItems(int nMaxItems, LPINT rgIndex) const;
void SetAnchorIndex(int nIndex);
int GetAnchorIndex() const;
// for listbox items
DWORD GetItemData(int nIndex) const;
int SetItemData(int nIndex, DWORD dwItemData);
void* GetItemDataPtr(int nIndex) const;
int SetItemDataPtr(int nIndex, void* pData);
int GetItemRect(int nIndex, LPRECT lpRect) const;
int GetText(int nIndex, LPTSTR lpszBuffer) const;
void GetText(int nIndex, CString& rString) const;
int GetTextLen(int nIndex) const;
// Settable only attributes
void SetColumnWidth(int cxWidth);
BOOL SetTabStops(int nTabStops, LPINT rgTabStops);
void SetTabStops();
BOOL SetTabStops(const int& cxEachStop); // takes an 'int'
int SetItemHeight(int nIndex, UINT cyItemHeight);
int GetItemHeight(int nIndex) const;
int FindStringExact(int nIndexStart, LPCTSTR lpszFind) const;
int GetCaretIndex() const;
int SetCaretIndex(int nIndex, BOOL bScroll = TRUE);
// Operations
// manipulating listbox items
int AddString(LPCTSTR lpszItem);
int DeleteString(UINT nIndex);
int InsertString(int nIndex, LPCTSTR lpszItem);
void ResetContent();
int Dir(UINT attr, LPCTSTR lpszWildCard);
// selection helpers
int FindString(int nStartAfter, LPCTSTR lpszItem) const;
int SelectString(int nStartAfter, LPCTSTR lpszItem);
int SelItemRange(BOOL bSelect, int nFirstItem, int nLastItem);
// Overridables (must override draw, measure and compare for owner draw)
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
virtual int CompareItem(LPCOMPAREITEMSTRUCT lpCompareItemStruct);
virtual void DeleteItem(LPDELETEITEMSTRUCT lpDeleteItemStruct);
virtual int VKeyToItem(UINT nKey, UINT nIndex);
virtual int CharToItem(UINT nKey, UINT nIndex);
// Implementation
public:
virtual ~CListBox();
protected:
virtual BOOL OnChildNotify(UINT, WPARAM, LPARAM, LRESULT*);
};