SkinUI入门教程(九) 第六组UI组件:列表、树、网格和浏览器
来源:互联网 发布:齐鲁域名 编辑:程序博客网 时间:2024/06/07 15:08
- 官方网站:http://www.skinui.cn
- 下载地址:http://pan.baidu.com/s/1slKsMGt
9.1 列表Item
列表Item由CSkinListItem类代表,继承于CSkinRelativeLayout,支持CSkinRelativeLayout的所有属性和方法。插入列表的节点必须是CSkinListItem或其子类。
下面是CSkinListItem类特有的XML属性和相关方法:
9.1.1设置鼠标按下时是否允许移动窗口
- 通过XML属性控制如下:
AllowMoveWindow="true"
- 通过C++程序代码调用方法控制如下:
void SetAllowMoveWindow(BOOL bAllow);
9.1.2设置鼠标移上去时的颜色
- 通过XML属性控制如下:
ColorMouseOver="true"
- 通过C++程序代码调用方法控制如下:
void SetColorMouseOver(const tstring& strBkgColor);
9.1.3设置列表鼠标按下时的颜色
- 通过XML属性控制如下:
ColorChecked="true"
- 通过C++程序代码调用方法控制如下:
void SetColorChecked(const tstring& strBkgColor);
9.1.4设置延迟加载
- 通过XML属性控制如下:
LazyLoad="true"
- 通过C++程序代码调用方法控制如下:
void SetLazyLoad(BOOL bLazyLoad);
9.2 列表
列表由CSkinListView类代表,继承于CSkinScrollView,支持CSkinScrollView的所有属性和方法。
布局文件如下:
<SkinDialog DefaultWidth="500" DefaultHeight="300" SysButton="CLOSE" Icon="128" Caption="IDS_CONTROL_SHOW11" Animation="SizeChange"> <SkinRelativeLayout AlignParentLeft="15" AlignParentRight="15" AlignParentTop="35" AlignParentBottom="15" BkgColor="ID_COLOR_WHITE" Border="ID_COLOR_LINE"> <SkinListView AlignParentLeft="1" AlignParentRight="1" AlignParentTop="1" AlignParentBottom="1" VScrollBar="VScrollBar.xml"> <SkinListItem LayoutWidth="FillParent" LayoutHeight="30" Image="ListItem.png"> <SkinRelativeLayout LayoutWidth="FillParent" LayoutHeight="FillParent"> <SkinTextView AlignParentLeft="15" AlignParentRight="15" AlignParentVerticalCenter="0" Text="IDS_CONTROL_SHOW_TEXT12"/> </SkinRelativeLayout> </SkinListItem> <SkinListItem LayoutWidth="FillParent" LayoutHeight="30" Image="ListItem.png"> <SkinRelativeLayout LayoutWidth="FillParent" LayoutHeight="FillParent"> <SkinTextView AlignParentLeft="15" AlignParentRight="15" AlignParentVerticalCenter="0" Text="IDS_CONTROL_SHOW_TEXT12"/> </SkinRelativeLayout> </SkinListItem> </SkinListView> </SkinRelativeLayout></SkinDialog>
列表控件的节点可以直接在配置文件指定,如上xml文件所示。
也可以由代码生成后再加入列表,如下所示:
CSkinListItem* pListItem = new CSkinListItem(pSkinListView);if(pListItem){ pListItem->SetImage(_T("ListItem.png")); pListItem->SetLayout(_T("ListItem.xml")); pListItem->SetLayoutHeight(30);}
下面是CSkinListView类特有的XML属性和相关方法:
9.2.1设置列表是否允许通过接口【GetChildById】获取子组件
- 通过XML属性控制如下:
AllowGetChild="true"
- 通过C++程序代码调用方法控制如下:
void SetAllowGetChild(BOOL bAllow);
9.2.2设置列表是否允许选中Item
- 通过XML属性控制如下:
AllowCheckItem="true"
- 通过C++程序代码调用方法控制如下:
void SetAllowCheckItem(BOOL bAllow);
9.2.3设置列表为空时的提示图片
- 通过XML属性控制如下:
EmptyImage="true"
- 通过C++程序代码调用方法控制如下:
void SetEmptyImage(const tstring& strEmptyImage);
9.2.4设置列表是否允许选中Item
- 通过XML属性控制如下:
EmptyTips="true"
- 通过C++程序代码调用方法控制如下:
void SetEmptyTips(const tstring& strEmptyTips);
9.3 树控件
树控件由CSkinTreeView类来代表,继承于CSkinListView,支持CSkinListView的所有属性和方法。
布局文件如下:
<SkinDialog DefaultWidth="400" DefaultHeight="300" SysButton="CLOSE" Icon="128" Caption="IDS_CONTROL_SHOW12" Animation="SizeChange"> <SkinRelativeLayout AlignParentLeft="15" AlignParentRight="15" AlignParentTop="35" AlignParentBottom="15" BkgColor="ID_COLOR_WHITE" Border="ID_COLOR_LINE"> <SkinTreeView Id="101" AlignParentLeft="1" AlignParentRight="1" AlignParentTop="1" AlignParentBottom="1" VScrollBar="VScrollBar.xml"> </SkinTreeView> </SkinRelativeLayout></SkinDialog>
树控件的节点必须由代码插入,代码如下:
void CTreeDialog::OnInitDialog(){ CSkinDialog::OnInitDialog(); CSkinTreeView* pTreeView = static_cast<CSkinTreeView*>(GetChildById(IDC_TREEVIEW)); if(pTreeView) { for(int64 i = 0; i < 10; ++i) { CSkinTreeItem* pRootItem = new CSkinTreeItem(pTreeView); if(pRootItem) { pRootItem->SetLazyLoad(TRUE); pRootItem->SetLayoutHeight(30); pRootItem->SetLayout(_T("TreeItem.xml")); pRootItem->SetImage(_T("ListItem.png")); pTreeView->InsertItem(NULL, pRootItem); for(int64 j = 0; j < 10; ++j) { CSkinTreeItem* pTreeItem = new CSkinTreeItem(pTreeView); if(pTreeItem) { pTreeItem->SetLazyLoad(TRUE); pTreeItem->SetLayoutHeight(30); pTreeItem->SetLayout(_T("TreeItem.xml")); pTreeItem->SetImage(_T("ListItem.png")); pTreeView->InsertItem(pRootItem, pTreeItem); for(int64 k = 0; k < 10; ++k) { CSkinListItem* pListItem = new CSkinListItem(pTreeView); if(pListItem) { pListItem->SetLazyLoad(TRUE); pListItem->SetLayoutHeight(30); pListItem->SetLayout(_T("ListItem.xml")); pListItem->SetImage(_T("ListItem.png")); pTreeView->InsertItem(pTreeItem, pListItem); } } } } } } pTreeView->ResetSortedItem(); }}
下面是CSkinTreeView类特有的方法:
9.3.1插入子树节点
- 通过C++程序代码调用方法控制如下:
void InsertItem(CSkinTreeItem* pParentItem, CSkinTreeItem* pItem);
9.3.2插入叶子节点
- 通过C++程序代码调用方法控制如下:
void InsertItem(CSkinTreeItem* pParentItem, CSkinListItem* pItem);
9.3.3展开树节点
- 通过C++程序代码调用方法控制如下:
void ExpandItem(CSkinTreeItem* pItem, BOOL bExpand);
9.3.4移除树节点
- 通过C++程序代码调用方法控制如下:
void RemoveItem(CSkinTreeItem* pParentItem, CSkinListItem* pItem);
9.3.5删除树节点
- 通过C++程序代码调用方法控制如下:
void DeleteItem(CSkinTreeItem* pParentItem, CSkinListItem* pItem);
9.3.6删除所有树节点
- 通过C++程序代码调用方法控制如下:
void DeleteAllItem();
9.4 网格控件
网格控件由CSkinGridView类来代表,继承于CSkinListView,支持CSkinListView的所有属性和方法。
网格控件跟列表控件非常相似,节点可以直接在配置文件指定,如上xml文件所示。
也可以直接由代码插入网格控件,如下所示:
CSkinListItem* pListItem = new CSkinListItem(pSkinGridView);if(pListItem){ pListItem->SetImage(_T("ListItem.png")); pListItem->SetLayout(_T("ListItem.xml")); pListItem->SetLayoutHeight(30);}
下面是CSkinListView类特有的XML属性和相关方法:
9.4.1设置单元格大小
- 通过XML属性控制如下:
CellSize="100,100"
- 通过C++程序代码调用方法控制如下:
void SetCellSize(const CSize& size);
9.4.1设置单元格间距
- 通过XML属性控制如下:
MarginSize="10,10"
- 通过C++程序代码调用方法控制如下:
void SetMarginSize(const CSize& size);
9.4.1设置列数
- 通过XML属性控制如下:
ColumnCount="5"
- 通过C++程序代码调用方法控制如下:
void SetColumnCount(LONG nColumnCount);
9.5 IE浏览器控件
IE浏览器控件由CSkinWebView类来代表,继承于CSkinWndView,支持CSkinWndView的所有属性和方法。
布局文件如下:
<SkinDialog DefaultWidth="800" DefaultHeight="600" SysButton="CLOSE" Icon="128" Caption="IDS_CONTROL_SHOW18" Animation="SizeChange"> <SkinWebView AlignParentLeft="0" AlignParentRight="0" AlignParentTop="32" AlignParentBottom="0" URL="www.baidu.com"/></SkinDialog>
下面是CSkinWebView类特有的XML属性和相关方法:
9.5.1设置URL
- 通过XML属性控制如下:
URL="www.baidu.com"
- 通过C++程序代码调用方法控制如下:
void LoadURL(const tstring& strURL);
9.6 Cef浏览器控件
网格控件由CSkinCefView类来代表,继承于CSkinView,支持CSkinView的所有属性和方法。
布局文件如下:
<SkinDialog DefaultWidth="800" DefaultHeight="600" SysButton="CLOSE" Icon="128" Caption="IDS_CONTROL_SHOW19" Animation="SizeChange"> <SkinCefView AlignParentLeft="0" AlignParentRight="0" AlignParentTop="32" AlignParentBottom="0" URL="www.baidu.com"/></SkinDialog>
下面是CSkinView类特有的XML属性和相关方法:
9.6.1设置URL
- 通过XML属性控制如下:
URL="www.baidu.com"
- 通过C++程序代码调用方法控制如下:
void LoadURL(const tstring& strURL);
- SkinUI入门教程(九) 第六组UI组件:列表、树、网格和浏览器
- SkinUI入门教程(八) 第五组UI组件:滚动视图、编辑框和下拉列表框
- SkinUI入门教程(五) 第二组UI组件:文本、超链、线条和图片框
- SkinUI入门教程(六) 第三组UI组件:按钮、单选框和复选框
- SkinUI入门教程(七) 第四组UI组件:进度条、分割条、滚动条和滑块
- SkinUI入门教程(三) SkinUI视图组件和界面编程
- SkinUI入门教程(十) SkinUI自定义控件和常用组件
- SkinUI入门教程(四) 第一组UI组件:布局管理器
- SkinUI入门教程(十一) SkinUI消息映射和消息处理
- SkinUI入门教程(一) SkinUI的发展历史和开发环境
- SkinUI入门教程(十二) SkinUI动画、国际化、字体大小和资源发布
- SkinUI入门教程(二) SkinUI应用程序的基本结构
- android-UI组件实例大全(九)------Adapter类Three之GirdView网格视图
- android入门(九) 常用UI组件
- webwork2 UI组件列表
- WPF列表,树,网格
- WPF列表,树,网格
- Flash图表组件FusionCharts帮助文档九:网格组件用法
- SkinUI入门教程(六) 第三组UI组件:按钮、单选框和复选框
- SkinUI入门教程(七) 第四组UI组件:进度条、分割条、滚动条和滑块
- 虚拟机网络设置
- SkinUI入门教程(八) 第五组UI组件:滚动视图、编辑框和下拉列表框
- 大数据可破"猪周期"难题?“二师兄”还能这么养!
- SkinUI入门教程(九) 第六组UI组件:列表、树、网格和浏览器
- SkinUI入门教程(十) SkinUI自定义控件和常用组件
- SkinUI入门教程(十一) SkinUI消息映射和消息处理
- SkinUI入门教程(十二) SkinUI动画、国际化、字体大小和资源发布
- 【POCO】POCO学习总结(一)--下载与编译
- app 支付宝支付接入
- Leetcode问题解答:215. Kth Largest Element in an Array
- 记忆化深搜模板
- 计算年终奖陷阱区间java代码