列表控件
#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] |