列表控件
#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 () |
| ListItem * | GetItem (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:返回指定项的高度 |
| 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 | ) |
| 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 |
示例代码:
| void UiList::SwapItem | ( | size_t | itemPos1, | |
| size_t | itemPos2 | |||
| ) |
互换两个Item的位置
bool UiList::m_bEnableVaryItemHeight [protected] |
bool UiList::m_bIsEnableDragScroll [protected] |
重载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] |
1.6.1