UiList类参考

列表控件

更多...

#include <UiList.h>

继承自UiWin

所有成员的列表。

公有成员

void AddItem (ListItem &item)
 添加项到列表的末尾
virtual int CalcContentHeight ()
 计算(返回)控件的内容总高度
virtual int CalcContentTopPosV ()
 计算(返回)控件的内容竖直方向的位置
virtual int CalcIndexOfPos (int xPos, int yPos)
virtual int CalcItemHeight (int index)
 获得(计算)某一项的高度。
virtual bool CalcItemRect (int index, __in RECT *prcWin, __out RECT *pRect)
 计算某一项的矩形
virtual int CalcItemTopPos (int index)
int CalcTotalItemsHeight ()
 返回所有项的总高度
virtual void DrawItem (HDC hdcDst, int nIndex, RECT *prcItem, RECT *prcWin, RECT *prcUpdate)
 当绘制列表项时会被调用.重载此成员函数可以自定义列表项的绘制
void EnableGridlines (bool bEnable)
 启用、关闭列表线的绘制
void EnableUltraGridlines (bool bEnable)
 启用、关闭额外列表线的绘制. 启用后,即使项的数量不足以填满整个控件区域,表格线仍然会绘制被整个控件区域。
void EnableVaryItemHeight (bool bEnable)
 启用、关闭“不同项高度”支持,即每一项的高度都可以不同。
BOOL GetExtendedProperty_UiList (int nPropertyType, void *pValue, int nBufSize)
 获取或设置对象的扩展属性值
int GetFirstVisibleItemIndex (int &nItemTopPos, RECT *prcWin, RECT *prcUpdate)
 获得第一个可见项
MZFC_INLINE COLORREF GetGridlineColor_GradientBottomLeft ()
MZFC_INLINE COLORREF GetGridlineColor_GradientBottomrRight ()
MZFC_INLINE COLORREF GetGridlineColor_GradientTopLeft ()
MZFC_INLINE COLORREF GetGridlineColor_GradientTopRight ()
ListItemGetItem (int index)
 获得列表项的数据
virtual int GetItemCount ()
 获得列表项的总数
int GetOriginOffset ()
int GetSelectedIndex ()
bool GetVisibleRange (int *nIndex, int *nCount)
void InsertItem (ListItem &item, int nPos=-1)
 添加项到列表的指定位置: nPos: 0:最前面, -1:最后面
void InvalidateItem (int nIndex)
bool IsEnableVaryItemHeight ()
 是否启用了“不同项高度”支持
bool IsGridlinesEnabled ()
bool IsUltraGridlinesEnabled ()
void MoveTopPos (int nOffset)
 移动内容顶部位置
virtual int OnDrawGradlines (HDC hdcDst, int nIndex, RECT *prcItem, bool bOuter=false)
virtual int OnLButtonDown (UINT fwKeys, int xPos, int yPos)
 当控件被左键按下时,此函数会被调用.
virtual int OnLButtonUp (UINT fwKeys, int xPos, int yPos)
 当控件被左键放开时,此函数会被调用.
virtual int OnMouseMove (UINT fwKeys, int xPos, int yPos)
 当控件上鼠标移动时,此函数会被调用.
virtual void OnRemoveItem (int nIndex)
virtual void OnSelectItem (int nIndex, UINT fwKeys, int xPos, int yPos)
 列表项被选中时,会调用此函数
virtual int OnTimer (UINT_PTR nIDEvent)
 当Timer到达时,此函数会被调用.
void PaintWin (HDC hdc, RECT *prcWin, RECT *prcUpdate)
 绘制控件
void RemoveAll ()
 删除列表的所有项
void RemoveItem (int nIndex)
 删除列表的指定项
void ReverseItems ()
 反转排列所有Item
void ScrollStart (double fScrollSpeed)
 开始滚动
void ScrollStop ()
 结束滚动
void ScrollTo (int nScrollToType=UI_SCROLLTO_TOP, int nDstTopPos=0, bool bAnimate=true)
 滚动控件内容至某个位置
BOOL SetExtendedProperty_UiList (int nPropertyType, void *pValue, int nBufSize)
 获取或设置对象的扩展属性值
void SetGridlineColor_GradientBottomLeft (COLORREF clrGridline)
 设置列表线的渐变色(底部左边)
void SetGridlineColor_GradientBottomRight (COLORREF clrGridline)
 设置列表线的渐变色(底部中间)
void SetGridlineColor_GradientTopLeft (COLORREF clrGridline)
 设置列表线的渐变色(顶部左边)
void SetGridlineColor_GradientTopRight (COLORREF clrGridline)
 设置列表线的渐变色(顶部中间)
void SetItemHeight (int nHeight)
 设置列表项的默认高度
void SetOriginOffset (int offset)
 设置当GetTopPos为零时,内容顶部与控件顶部的偏移值
void SetSelectedIndex (int index)
 设置选中项:
void SetTopPos (int nTopPos)
 设置内容顶部位置
void SortItems (CompareListItem fnCompare, size_t nBeginPos, size_t nCount)
 对列表项进行排序,从第nBeginPos开始对nCount项使用fnCompare比较法进行排序
void SwapItem (size_t itemPos1, size_t itemPos2)
 互换两个Item的位置
 UiList (void)
 ~UiList (void)

保护属性

bool m_bEnableVaryItemHeight
bool m_bIsEnableDragScroll
bool m_bMouseDown
int m_nDeleteItem
int m_nDeleteItemTopPos
int m_nDragMode
int m_nItemHeight
int m_nOriginOffset
int m_nSelectedIndex

详细描述

列表控件


构造及析构函数文档

UiList::UiList ( void   ) 
UiList::~UiList ( void   ) 

成员函数文档

void UiList::AddItem ( ListItem item  ) 

添加项到列表的末尾

operations to items

virtual int UiList::CalcContentHeight (  )  [virtual]

计算(返回)控件的内容总高度

重载UiWin

virtual int UiList::CalcContentTopPosV (  )  [virtual]

计算(返回)控件的内容竖直方向的位置

重载UiWin

virtual int UiList::CalcIndexOfPos ( int  xPos,
int  yPos 
) [virtual]

计算某个坐标所在的列表项的索引: 返回值: -1:无, >=0: 项索引

virtual int UiList::CalcItemHeight ( int  index  )  [virtual]

获得(计算)某一项的高度。

重载此函数以自定义每一项的高度. 此成员函数只当 UiList::IsEnableVaryItemHeight() 为true时被调用。

参数:
index -1:返回的是默认项高度; >=0:返回指定项的高度
参见:
EnableVaryItemHeight()
virtual bool UiList::CalcItemRect ( int  index,
__in RECT *  prcWin,
__out RECT *  pRect 
) [virtual]

计算某一项的矩形

virtual int UiList::CalcItemTopPos ( int  index  )  [virtual]
int UiList::CalcTotalItemsHeight (  ) 

返回所有项的总高度

virtual void UiList::DrawItem ( HDC  hdcDst,
int  nIndex,
RECT *  prcItem,
RECT *  prcWin,
RECT *  prcUpdate 
) [virtual]

当绘制列表项时会被调用.重载此成员函数可以自定义列表项的绘制

参数:
hdcDst 目的DC
nIndex 要绘制的项的索引.
prcItem 列表项所在的矩形区域.
prcWin 列表控件所在区域.
prcUpdate 控件需要重画的区域.为优化绘制速度,不包含在prcUpdate区域内的内容请不要绘制。
void UiList::EnableGridlines ( bool  bEnable  ) 

启用、关闭列表线的绘制

void UiList::EnableUltraGridlines ( bool  bEnable  ) 

启用、关闭额外列表线的绘制. 启用后,即使项的数量不足以填满整个控件区域,表格线仍然会绘制被整个控件区域。

void UiList::EnableVaryItemHeight ( bool  bEnable  ) 

启用、关闭“不同项高度”支持,即每一项的高度都可以不同。

当设置true时,通过重载CalcItemHeight()成员函数可以自定义每一项的高度

参见:
CalcItemHeight()
BOOL UiList::GetExtendedProperty_UiList ( int  nPropertyType,
void *  pValue,
int  nBufSize 
)

获取或设置对象的扩展属性值

参数:
nPropertyType 要获取或设置的属性类型
pValue 要获取或设置的属性值的指针
nBufSize pValue所指向的变量的size大小(单位: 字节)
返回:
操作是否成功
int UiList::GetFirstVisibleItemIndex ( int &  nItemTopPos,
RECT *  prcWin,
RECT *  prcUpdate 
)

获得第一个可见项

获得第一个可见项

参数:
nItemTopPos 输出值,是第一个可见项的顶部与控件的顶部的相对偏移值
prcWin 控件的矩形
返回:
第一个可见项的索引(大于等于零)
MZFC_INLINE COLORREF UiList::GetGridlineColor_GradientBottomLeft (  ) 
MZFC_INLINE COLORREF UiList::GetGridlineColor_GradientBottomrRight (  ) 
MZFC_INLINE COLORREF UiList::GetGridlineColor_GradientTopLeft (  ) 
MZFC_INLINE COLORREF UiList::GetGridlineColor_GradientTopRight (  ) 
ListItem* UiList::GetItem ( int  index  ) 

获得列表项的数据

virtual int UiList::GetItemCount (  )  [virtual]

获得列表项的总数

int UiList::GetOriginOffset (  ) 
int UiList::GetSelectedIndex (  ) 

获得选中项的索引: 返回值: -1:无, >=0: 项索引

bool UiList::GetVisibleRange ( int *  nIndex,
int *  nCount 
)
void UiList::InsertItem ( ListItem item,
int  nPos = -1 
)

添加项到列表的指定位置: nPos: 0:最前面, -1:最后面

void UiList::InvalidateItem ( int  nIndex  ) 

无效某一项所在的区域. nIndex: 项的索引,大于小于零

bool UiList::IsEnableVaryItemHeight (  ) 

是否启用了“不同项高度”支持

bool UiList::IsGridlinesEnabled (  ) 
bool UiList::IsUltraGridlinesEnabled (  ) 
void UiList::MoveTopPos ( int  nOffset  )  [virtual]

移动内容顶部位置

重载UiWin

virtual int UiList::OnDrawGradlines ( HDC  hdcDst,
int  nIndex,
RECT *  prcItem,
bool  bOuter = false 
) [virtual]
virtual int UiList::OnLButtonDown ( UINT  fwKeys,
int  xPos,
int  yPos 
) [virtual]

当控件被左键按下时,此函数会被调用.

重载UiWin

virtual int UiList::OnLButtonUp ( UINT  fwKeys,
int  xPos,
int  yPos 
) [virtual]

当控件被左键放开时,此函数会被调用.

重载UiWin

virtual int UiList::OnMouseMove ( UINT  fwKeys,
int  xPos,
int  yPos 
) [virtual]

当控件上鼠标移动时,此函数会被调用.

重载UiWin

virtual void UiList::OnRemoveItem ( int  nIndex  )  [virtual]

假如你重载了此函数,则必须在你的派生列表类的析构函数中调用RemoveAll(),这样才能保证OnRemoveItem被调用。 当列表项被删除时,会调用此成员函数

virtual void UiList::OnSelectItem ( int  nIndex,
UINT  fwKeys,
int  xPos,
int  yPos 
) [virtual]

列表项被选中时,会调用此函数

virtual int UiList::OnTimer ( UINT_PTR  nIDEvent  )  [virtual]

当Timer到达时,此函数会被调用.

重载UiWin

void UiList::PaintWin ( HDC  hdcDst,
RECT *  prcWin,
RECT *  prcUpdate 
) [virtual]

绘制控件

重载此函数可以自定义控件的绘制

参数:
hdcDst 目的DC
prcWin 控件所在区域(以HDC的左上角为原点)
prcUpdate 需要更新的区域(以HDC的左上角为原点)

重载UiWin

void UiList::RemoveAll (  ) 

删除列表的所有项

void UiList::RemoveItem ( int  nIndex  ) 

删除列表的指定项

void UiList::ReverseItems (  ) 

反转排列所有Item

void UiList::ScrollStart ( double  fScrollSpeed  )  [virtual]

开始滚动

重载UiWin

void UiList::ScrollStop (  )  [virtual]

结束滚动

重载UiWin

void UiList::ScrollTo ( int  nScrollToType = UI_SCROLLTO_TOP,
int  nDstTopPos = 0,
bool  bAnimate = true 
) [virtual]

滚动控件内容至某个位置

参数:
nScrollToType UI_SCROLLTO_TOP, UI_SCROLLTO_BOTTOM, UI_SCROLLTO_POS
nDstTopPos 目的位置,只当 nScrollToType==UI_SCROLLTO_POS 时有效
bAnimate 是否显示滚动过程

重载UiWin

BOOL UiList::SetExtendedProperty_UiList ( int  nPropertyType,
void *  pValue,
int  nBufSize 
)

获取或设置对象的扩展属性值

参数:
nPropertyType 要获取或设置的属性类型
pValue 要设置的属性值的指针
nBufSize pValue所指向的变量的size大小(单位: 字节)
返回:
操作是否成功
void UiList::SetGridlineColor_GradientBottomLeft ( COLORREF  clrGridline  ) 

设置列表线的渐变色(底部左边)

void UiList::SetGridlineColor_GradientBottomRight ( COLORREF  clrGridline  ) 

设置列表线的渐变色(底部中间)

void UiList::SetGridlineColor_GradientTopLeft ( COLORREF  clrGridline  ) 

设置列表线的渐变色(顶部左边)

void UiList::SetGridlineColor_GradientTopRight ( COLORREF  clrGridline  ) 

设置列表线的渐变色(顶部中间)

void UiList::SetItemHeight ( int  nHeight  ) 

设置列表项的默认高度

void UiList::SetOriginOffset ( int  offset  ) 

设置当GetTopPos为零时,内容顶部与控件顶部的偏移值

void UiList::SetSelectedIndex ( int  index  ) 

设置选中项:

void UiList::SetTopPos ( int  nTopPos  )  [virtual]

设置内容顶部位置

重载UiWin

void UiList::SortItems ( CompareListItem  fnCompare,
size_t  nBeginPos,
size_t  nCount 
)

对列表项进行排序,从第nBeginPos开始对nCount项使用fnCompare比较法进行排序

参数:
nBeginPos 排序列表项的开始位置
nCount 排序列表项的项数
fnCompare 自定义的排序比较法,参考CompareListItem

示例代码:

//自定义的降序排列比较函数:
bool MyCompareListItem(const ListItem& item2, const ListItem& item1)
{
    int res = wcscmp(item2.Text.C_Str(), item1.Text.C_Str());
    if (res > 0)
    {
        // 交换
        return true;
    }
    else
    {
        // 不交换
        return false;
    }
}


// 对列表项进行降序排列
m_List.SortItems(MyCompareListItem, 0, m_List.GetItemCount());
void UiList::SwapItem ( size_t  itemPos1,
size_t  itemPos2 
)

互换两个Item的位置


成员数据文档

重载UiWin

bool UiList::m_bMouseDown [protected]
int UiList::m_nDeleteItem [protected]
int UiList::m_nDeleteItemTopPos [protected]
int UiList::m_nDragMode [protected]

重载UiWin

int UiList::m_nItemHeight [protected]
int UiList::m_nOriginOffset [protected]
int UiList::m_nSelectedIndex [protected]

该类的文档由以下文件生成:

Generated at Tue Feb 9 15:10:01 2010 for Meizu M8 SDK Documentation by  doxygen 1.6.1