Report List Controls
Report风格的ListCtrl的扩展,原文链接地址:http://www.codeproject.com/Articles/5560/Another-Report-List-Control
1.列排序
BOOL IsSortable() const; // Is sort allowed?
BOOL SetSortable(BOOL bSet); // Allow/disallow sorting
BOOL IsSortAscending() const;
int GetSortedColumn() const;
// Sort a specified column.
void SortItems(int nColumn, BOOL bAscending);
A message WM_ITEM_SORTED is sent to the parent window after a sorting is completed, the column index is passed as wParam and sorting method is passed as lParam (0=descending, 1=ascending).
2.列中排序
单列中,按照每一部分排列,如separator一部分进行排列。
1)不用字符串进行排列:
m_wndList.SetSortSeparator(NULL); // Disable sort-separator
// Sort the first column in ascending order
m_wndList.SortItems(0, TRUE);
2)按照separator字符串进行排列:
// m_wndList.SetSortSeparator(NULL); // Disable sort-separator
// m_wndList.SortItems(0, TRUE); // Sort the first column in ascending order // Use string "Separator" as the sort-separator
m_wndList.SetSortSeparator(_T("Separator"));
// Sort the first column in ascending order
m_wndList.SortItems(0, TRUE);
2)其他相关函数:
void SetSortSeparator(LPCTSTR lpSortSeparator);
LPCTSTR GetSortSeparator() const;
3.子项可编辑
BOOL IsEditable() const; // Is Item text editable?
void SetEditable(BOOL bSet = TRUE); // Allow item text editting // Display the editbox, previous edit are committed
BOOL StartEdit(int nItem, int nSubItem); BOOL EndEdit(BOOL bCommit = TRUE); // Commit/cancel text edit, hide the editbox
CEdit* GetEditControl();
4.自定义框选
void SetCheckboxeStyle(int nStyle = RC_CHKBOX_NORMAL); // Set checkbox styles.
int GetCheckboxStyle() const;
----------------------------nStyle-------------------------------------------------------------
RC_CHKBOX_NONE-- No checkbox displayedRC_CHKBOX_NORMAL-- Normal style, multiple check marks allowedRC_CHKBOX_SINGLE-- Single check only. Checkboxes are mutually exclusive, just like using radio buttons.RC_CHKBOX_DISABLED-- Disabled, cannot be checked/unchecked by user input.
// Example: // Make the checkbox read-only
m_wndList.SetCheckboxeStyle(RC_CHKBOX_DISABLED);
5.列图标、子项颜色、子项图标
// Column header images
BOOL SetHeaderImage(int nColumn, int nImageIndex, BOOL bLeftSide = TRUE);
int GetHeaderImage(int nColumn) const;
CImageList* SetHeaderImageList(UINT nBitmapID, COLORREF crMask = RGB(255, 0, 255));
CImageList* SetHeaderImageList(CImageList* pImageList);
// Sub-item images
BOOL SetItemImage(int nItem, int nSubItem, int nImageIndex);
int GetItemImage(int nItem, int nSubItem) const;
CImageList* SetImageList(UINT nBitmapID, COLORREF crMask = RGB(255, 0, 255));
CImageList* SetImageList(CImageList* pImageList);
CImageList* GetImageList() const;
// Sub-item Text & Background Color
void SetItemTextColor(int nItem = -1, int nSubItem = -1,
COLORREF color = COLOR_INVALID, BOOL bRedraw = TRUE);
COLORREF GetItemTextColor(int nItem, int nSubItem) const;
void SetItemBkColor(int nItem = -1, int nSubItem = -1,
COLORREF color = COLOR_INVALID, BOOL bRedraw = TRUE);
COLORREF GetItemBkColor(int nItem, int nSubItem) const;
// Example: Set image and color for grid - 1st row 3rd column m_wndList.SetImageList(IDB_BITMAP1); // Using bitmap resource "IDB_BITMAP1"
m_wndList.SetItemImage(0, 2, 0); // Set the 1st row 3rd column with image index 0 // Set grid colors
m_wndList.SetItemTextColor(0, 2, RGB(255, 0, 0), TRUE); // Grid text color: red
m_wndList.SetItemBkColor(0, 2, RGB(0, 255, 0), TRUE); // Grid bkground color: green
6.方便操作
1)操作属性
RC_ITEM_ALL - All items regardless of states
RC_ITEM_SELECTED - Selected items
RC_ITEM_UNSELECTED - Unselected items
RC_ITEM_CHECKED - Checked items
RC_ITEM_UNCHECKED - Unchecked items
RC_ITEM_FOCUSED - Focused item
RC_ITEM_UNFOCUSED - Unfocused items
2)相关函数
int GetFirstItem(DWORD dwStates = RC_ITEM_ALL, int nStartAfter = -1) const;
int GetLastItem(DWORD dwStates = RC_ITEM_ALL, int nStartBefore = -1) const;
int GetItemCount(DWORD dwStates = RC_ITEM_ALL) const;
DWORD GetItemStates(int nItem) const;
BOOL ExamItemStates(int nItem, DWORD dwStates) const;
BOOL SetItemStates(int nItem, DWORD dwNewStates);
int SetAllItemStates(DWORD dwOldStates, DWORD dwNewStates);
void InvertItems(int nType); // RC_INVERT_SELECTION or RC_INVERT_CHECKMARK
3)example
// Example: // Select all items which were unselected and unchecked
m_wndList.SetAllItemStates(RC_ITEM_UNSELECTED | RC_ITEM_UNCHECKED, RC_ITEM_SELECTED); // How many items are not checked?
int n = m_wndList.GetItemCount(RC_ITEM_UNCHECKED); //Unselect and check all items regardless of their previous states
m_wndList.SetAllItemStates(RC_ITEM_ALL, RC_ITEM_UNSELECTED | RC_ITEM_CHECKED); // Delete all items which were selected and checked
m_wndList.DeleteAllItems(RC_ITEM_SELECTED | RC_ITEM_CHECKED);
7.方便定位
int MoveUp(int nItem, int nCount = 1); // Move an item upwards by "nCount" positions. // Move an item downwards by "nCount" positions.
int MoveDown(int nItem, int nCount = 1); int MoveToTop(int nItem); // Move an item up to the top.
int MoveToBottom(int nItem); // Move an item down to the bottom.
int MoveTo(int nItem, int nNewPosition); // Move an item to a particular position
BOOL SwapItems(int nItem1, int nItem2); // Swap two items including all attributes.
8.内容项操作
BOOL SetItemText(int nItem, int nSubItem, INT val);
BOOL SetItemText(int nItem, int nSubItem, UINT val);
BOOL SetItemText(int nItem, int nSubItem, LONG val);
BOOL SetItemText(int nItem, int nSubItem, ULONG val);
BOOL SetItemText(int nItem, int nSubItem, TCHAR val);
BOOL SetItemText(int nItem, int nSubItem, DOUBLE val, int nPrecision = -1);
BOOL SetItemText(int nItem, int nSubItem,
const COleDateTime& dateTime,
DWORD dwFlags = 0);
9.自适应
void CMyView::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy); // TODO: Add your message handler code here
m_wndList.ResizeToFitParent(); // Add this line!
}
10.例子
m_wndList.SetColumnHeader(_T("Student ID, 100; Enroll Date, 150; Score, 80, 2"));
for (int i = 0; i < 10; i++)
{
const int IDX = m_wndList.InsertItem(0, _T(""));
m_wndList.SetItemText(IDX, 0, rand() % 3000);
m_wndList.SetItemText(IDX, 1, GenRandDate());
m_wndList.SetItemText(IDX, 2, (rand() % 51) + 50);
for (int j = 0; j < 2; j++)
m_wndList.SetItemImage(IDX, j, rand() % 5); // subitem images
}
m_wndList.SetImageList(IDB_BITMAP1);
m_wndList.SetHeaderImageList(IDB_BITMAP2);
m_wndList.SetHeaderImage(0, 0);
m_wndList.SetHeaderImage(1, 2, FALSE);
m_wndList.SetHeaderImage(2, 1);
m_wndList.SetGridLines(TRUE); // SHow grid lines
m_wndList.SetCheckboxeStyle(RC_CHKBOX_NORMAL); // Enable checkboxes
m_wndList.SetEditable(TRUE); // Allow sub-text edit
m_wndList.SortItems(0, TRUE); // sort the 1st column, ascending
m_bSortable = m_wndList.IsSortable();
UpdateData(FALSE);
GetDlgItem(IDC_ALLOWSORT)->EnableWindow(m_wndList.HasColumnHeader());
// now play some colorful stuff
// Set the 3rd column background color to yellow, text color to blue
m_wndList.SetItemTextColor(-1, 2, RGB(0, 0, 0));
m_wndList.SetItemBkColor(-1, 2, RGB(255, 255, 0));
for (int n = 0; n < m_wndList.GetItemCount(); n++)
{
const int SCORE = _ttoi(m_wndList.GetItemText(n, 2)); // student score
if (SCORE < 60)
{
m_wndList.SetItemBkColor(n, -1, ::GetSysColor(COLOR_INFOBK));
m_wndList.SetItemTextColor(n, -1, RGB(255, 0, 0));
m_wndList.SetItemBkColor(n, 2, RGB(255, 0, 0));
m_wndList.SetItemTextColor(n, 2, RGB(255, 255, 255));
}
else if (SCORE > 90)
{
m_wndList.SetItemBkColor(n, -1, RGB(160, 255, 192));
m_wndList.SetItemTextColor(n, -1, RGB(0, 0, 255));
m_wndList.SetItemTextColor(n, 2, RGB(255, 255, 255));
m_wndList.SetItemBkColor(n, 2, RGB(0, 160, 0));
}
}代码链接地址:http://download.csdn.net/detail/wuyuan2011woaini/9592993
Report List Controls的更多相关文章
- Percona Toolkit 使用
安装 percona-toolkit perl Makefile.PL make make test make install 默认安装到 /usr/local/bin 目录下 可能需要 DBI-1. ...
- WPF Combox实现下拉多选,可选中多个值
自定义多选MultiCombox,可以实现下拉列表多选 using System; using System.Collections.Generic; using System.Collections ...
- Session for SSRS Report of Microsoft Dynamics AX
Session for SSRS Report of Microsoft Dynamics AX 版权声明:本文为博主原创文章,未经博主允许不得转载. Contract •A data contrac ...
- Report processing of Microsoft Dynamic AX
Report processing of Microsoft Dynamic AX 版权声明:本文为博主原创文章,未经博主允许不得转载. The implementation of a general ...
- SQL Server 2008 R2 升级到 Service Pack 3后Report Builder启动不了
一同事将测试服务器从SQL Server 2008 R2 SP2升级到了SQL Server 2008 R2 SP3后发现Report Service的报表编辑时启动不了Report Builder, ...
- Crystal Report在.net中的两种显示方式
Crystal Report在.net中的两种显示方式 编写人:CC阿爸 2014-7-29 近来在完成深圳一公司的项目,对方对各方面要求相当严格,一不满意就拒绝签收,为了对修正水晶报表显示及导出的一 ...
- [转] Asp.net Report Viewer 简单实例
原文链接:http://www.aspsnippets.com/Green/Articles/ASPNet-Report-Viewer-control-Tutorial-with-example.as ...
- USB HID Report Descriptor 报告描述符详解
Report descriptors are composed of pieces of information. Each piece of information is called an Ite ...
- DevExpress ASP.NET Core Controls 2019发展蓝图(No.4)
本文主要为大家介绍DevExpress ASP.NET Core Controls 2019年的官方发展蓝图,更多精彩内容欢迎持续收藏关注哦~ [DevExpress ASP.NET Controls ...
随机推荐
- Ext.GridPanel 用法总结(一)—— Grid基本用法
Ext.GridPanel 用法总结(一)—— Grid基本用法 摘自:http://www.cnblogs.com/luluping/archive/2009/08/01/1536645.html ...
- 深入.NET内测题
一 选择题 1) 以下关于序列化和反序列化的描述错误的是( C). a) 序列化是将对象的状态存储到特定存储介质中的过程 b) 二进制格式化器的Serialize()和D ...
- Win7如何部署apache服务器(包括SSL设置)
部署普通站点 1.首先下载apache24版本,下载地址为http://pan.baidu.com/s/1pLmvDgB; 2.解压到你的电脑本地目录,如D:\Apache24(下文配置都会以当前目录 ...
- Wijmo金融图表系列之等量图&成交量柱状图
Wijmo金融图表有很多类型,我们来一一介绍.之前介绍了平均K线图(Heikin-Ashi)和砖形图,现在我们来一起看看等量图和成交量柱状图. 图表 #3: 等量图(EquiVolume) 等量图和K ...
- Python 3.X 实现定时器 Timer,制作抽象的Timer定时器基类
Python 在不依赖第三方库的前提下,对于定时器的实现并不是很完美,但是这不意味着我们无法实现. 阅读了网上的一些资料,得出一些结论,顺手写了一个基类的定时器(Python3) BaseTimer: ...
- 泛函编程(19)-泛函库设计-Parallelism In Action
上节我们讨论了并行运算组件库的基础设计,实现了并行运算最基本的功能:创建新的线程并提交一个任务异步执行.并行运算类型的基本表达形式如下: import java.util.concurrent._ o ...
- jquery fadeOut 异步
1. 概述 jquery实现动画效果的函数使用起来很方便,不过动画执行是异步的, 所以要把自定义的操作放在回调函数里. 2. example <html> <body> < ...
- 深入理解php中的ini配置(1)
这篇文章不会详细叙述某个ini配置项的用途,这些在手册上已经讲解的面面俱到.我只是想从某个特定的角度去挖掘php的实现机制,会涉及到一些php内核方面的知识:-) 使用php的同学都知道php.ini ...
- VS 2013 Preview 自定义 SharePoint 2013 列表 之 两个Bug
SharePoint 2013 已RTM了,对于程序员来说又要了解新功能了,同时 VS 2013 也将要 RTM了,两者同时应用定会有不新功能,我们先从 自定义 列表开始. SharePoint 20 ...
- 【转】内部Handler类引起内存泄露
如果您在Activity中定义了一个内部Handler类,如下代码: public class MainActivity extends Activity { private Handl ...



