CListCtrl控件点击相应列标题排序后,相应行的背景色如何跟随记录排序后变化 20C

CListCtrl控件中某些行初始背景色是红色标识的。但当点击标题OnColumnclick,调用SortItems排序后,背景色的位置被标记到排序后的其它行数据上。如何能做到点击列头排序后,以前被红色标识的行仍被红色标识?

0

2个回答

要看你的代码,按照一般的做法,你可能是用重绘实现的,因此你需要借助ListItem的Tag或者一个数组,记录下哪个条目需要加上背景,那么在ListView排序后重新绘制这些条目。

0

你需要自绘实现,之前已被红色标记的行关联一个SteItemData值,绘制的时候调用GetItemData,然后根据该值的不同绘制不同的背景色CDC::FillSolidRect()

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
DataGridView c# winform解决排序后行颜色丢失的问题
完全是源码,可以很好地解决C# Winform中对DataGridView 进行排序后,行的颜色,单元格颜色改变了的方法: 在赋数据源时:把 DataGridView1.DataSource=DataTable1,去掉,用我提供的源码的方法,再数据源就可以了: 改成dtToDgv(DataGridView1, DataTable1, 1),非常非常的好
CListCtrl自动排序及添加排序箭头
应客户要求,在点击CListCtrl列表每列标题时进行排序,类似于WINDOWS资源管理器的效果。 首先在资源中添加LVN_COLUMNCLICK消息,生成OnLvnColumnclickListInfo函数,在函数里进行处理即可。 1.最最笨的方法是点击标题时,依次获取每行的内容,自己比较排序,这里不多说,略过。 2.用控制自带的排序功能。 1)为了能显示箭头,在列表初始化时增加
实现CListctrl自动排序
1、在对话框(CStatusDlg)中放入CListCtrl控件,并为其添加变量_listCtrl   设置控件风格为report2、在初始化对框框中初始化CListCtrl控件BOOL CStatusDlg::OnInitDialog(){ CDialogEx::OnInitDialog();           //这里注意后面多加了一个空格,方便直接添加排序的图标 _listCtrl.Ins...
MFC CListControl 点击列头排序的实现
MFC CListControl 列头排序
C#DataGridView行交替变色、禁止自动排序、 列显示格式设置
代码示例: 1、行交替变色 dgvData.RowsDefaultCellStyle.BackColor = Color.WhiteSmoke;// 设置表格背景色 dgvData.AlternatingRowsDefaultCellStyle.BackColor = Color.White; // 设置交替行的背景色 2、禁止自动排序 dgvData.AutoGenerateColumns = ...
MFC特强大CListCtrlEx(支持插入控件、设置颜色、始终高亮、列排序等)
本资源中提供了CListCtrlEx的CPP与H文件与一个Demo示例,CListCtrlEx继承自CListCtrl,可以让您很方便的操作listCtrl控件。此类最初来源于网络,本人在其上进行加工整理,添加了一些新功能,优化了一些细节代码,同时使该类可用于VS的平台,同时支持Unicode。目前包括的功能有:可指定任意行、任意列、任意单元中设置其他控件,如Edit、Combo等;可指定任意单元格颜色(不需要再在CustomDraw里来实现);可让控件失去焦点后仍高亮显示;可以按任意列进行排列列表等。本人在网上找过很多此控件的资源,这个可以说是最好的一个,绝对值得收藏使用!!
mfc CListctrl响应单击事件开启新的对话框
1..h文件添加消息处理函数 afx_msg void OnClickList(NMHDR* pNMHDR, LRESULT* pResult); 2..cpp文件添加响应 ON_NOTIFY(NM_CLICK ,IDC_LISTDISK,OnClickList) 3.实现响应函数 void CDiskIformationDlg::OnClickList(NMHD
list control单击列表头排序(MFC)
    MFC的路上荆棘还真不少,单击列表头排序就是!!!由于网上的资源都太老了而且食用说明也没有,对于初级食客来说很不友好,为此本大厨决定写一篇食用说明,本说明无毒无害不可食用环境:VS2005首先要创建list control控件,如果你连list control都不会创建,那就太吓人了然后,在.cpp文件里面先定义两个全局变量DWORD dwSelColID =0; //选择的列 BOOL...
使用MFC的CListCtrl的排序功能
CListCtrl控件的表头可以当作按钮来使用,当鼠标点击表头时,会向父窗口发送一个LNV_COLUMNCLICK消息,在重绘的CMyListCtrl类或者IDC_LIST控件中响应对应的LNV_COLUMNCLICK消息,就可以对列表进行排序了。 其函数使用方法见程序,其中SubItem为排序的表列索引号,MyCompareProc()为进行具体排序的回调函数,也就是说,通过鼠标点击表头实现的
MATLAB中关于排序后,序号随着排序数组一同变化的方法
举个例子,x=[1,2,3,4],y=[3,2,4,1],我想让y按从小到大的顺序排列,但x里对应的数值也要重新排列,就是变成x=[4,2,1,3],y=[1,2,3,4]这样。请问要怎么做呢?谢谢! 我已经知道要怎么做了。只要先将两个数组放入到一个矩阵中,xy=(x,y),然后用sortrows()函数就好,xy=sortrows(xy,2)。 这个方法不知道行不行 但是 有一种方法 很
重写CListCtrl类,行颜色显示,列自动排序
重写的CListCtrl类,能改变行的颜色,能点击列标题后实现自动排序。同时包含VC2010下,CString转为Char*的技巧。类在VC6.0和VC2010下均编译通过。
NM_CUSTOMDRAW
http://blog.sina.com.cn/u/4ad18f56010006s8此响应WM_ERASEBKGND消息BOOL MyList::OnEraseBkgnd(CDC* pDC){ // TODO: 在此添加消息处理程序代码和/或调用默认值    CRect rect;  GetClientRect(rect);  POINT mypoint;    CBrush
dbgrideh 点击标题行排序
-
Easyui datagrid 实现跳过指定行点击列标题排序
由于要跳过汇总行,所以不能用Easyui自带的排序方法,所以写了此方法实现;除了跳过指定行以外,还可以扩展,定义列排序的方法; 使用了冒泡排序。 $(".datagrid-cell").click(function () {         var sort = $(this).parent("td").attr("field");  //取点击排序的列对应字段值         var fi...
mfc listctrl控件自动排序
在mfc对话框工程中采用了listctrl控件,需要点击控件列头,实现控件内容的自动排序,方法如下。 假设listctrl控件已经添加了控制变量 CListCtrl m_ListCtrl。 1、在.h文件中添加 public: int sort_column; // 表示需要排序的列 static bool method; //类内申明 static int CALLBACK li
MFC——Listcontrol 添加背景颜色
在MFC中,我们经常会需要给自己的Listcontrol 添加背景颜色,下面便是如何添加的详细过程。首先需要你的程序有一个ListCtrl在对话框上,并且这个ListCtrl处于Report和多列模式。      Custom draw可以被想象成一个轻量级的,容易使用的重绘方法(重绘方法还有几种,例如Owner Draw等)。这种容易来自于我们只需要处理一个消息(NM_CUSTOMDR
MFC,点ListControl控件列头可排序列子
演示如何使用ListControl扩展,在控件中点列标题对数据进行排序.
CListCtrl控件点标题排序
排序比较函数static int CALLBACK MyCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort){ CString &lp1 = *((CString *)lParam1); CString &lp2 = *((CString *)lParam2); int &sort = *(int *)lParamSort
MFC CListCtrl 点击选中整行
CListCtrl 默认只有点击第一列才能选中,而且只能让第一列高亮,那么如何让点击某一行的任何列,整行都高亮呢? 有2个方法,如下: //方法1 ::SendMessage(m_listCtrlDevice.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE,LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT); //方法2 m
实现MFC CListCtrl控件的可编辑功能
MFC的CListCtrl空间默认不能编辑。但可通过在特定地方显示编辑框,并读写编辑框的内容来间接实现CListCtrl的可编辑功能。
ListControl控件改变表头颜色
ListControl,重写ListControl控件类,可以根据自己的需要修改控件表头颜色。在VC6.0下调试成功。
列表控件扩展类,CListCtrlEx-改变任意列颜色,背景色
列表控件扩展类,CListCtrlEx-改变任意列颜色,背景色
jquery.dataTables 按条件查询后重新生成表格 点击排序还是原来的数据问题
js 代码 vue+jq $(document).ready(function() { logList(); }); var userArr = new Array(); function logList() { $.get("/oplog/logList",{cuser : cuser, time : time, module : module},
Datagridview解决列中间有空值时的排序出错问题
Datagridview解决列中间有空值时的排序出错问题 在Winform、.Net开发中,DataGridView是最常用到的一个控件,特别是在对数据库编程中,常用来显示各种数据集信息,所以对Datagridview使用就显得格外重要。DataGridView本身自带排序功能 当字段中含有空值时,利用DataGridView的自动排序功能会报错及解决办法 DataGridView本身自带排序功
AngularJs的点击删除,排序,查询
删除,排序,查询                       week3code                             //定义一个数组     var user=[     {id:80,name:"iphone",price:54000},     {id:1200,name:"ipad mini",price:24000},
D7+Ehlib 7.0.133 DBGridEh,点击列标题排序属性设置好之后,有时无法排序的解决办法
如题,Delphi 7下安装了Ehlib 7.0.133 版本,使用DBGridEh-->DataSource-->TMemTableEh-->TADODataDriverEh连接这些控件,设置了DBGridEh的各个属性如下: 设置        DBGridEh.OptionsEh.dghmultisortmarking := true;         DBGridEh.sortloc
利用GridView自带的Sorting方法进行表头排序
相关的知识点1.ViewState存储List类数据2 Gridview自带sorting方法3. 获取List类的属性4.Linq的排序方法1、在源码中给GridView中加入AllowSorting属性 和在列中加入SortExpression属性(注意必须与List的属性声明一致且区别大小写) <asp:GridView ID="GridView1" ru...
MFC对话框程序中列表控件(CListCtrl)的响应消息
缩写 注解 HDN Header Notify LVN ListView control Notify NM Notify Message TVN TreeView control Notify 响应消息 解析 HDN_BEGINTRACK 开始拖动控件顶部的分割线 HDN_BEGINDRAG 开始拖动控件顶部的分栏(item) HDN_BE...
mfc_ListView/ListCtrl 实现点击表头排序与固定列宽
MFC. 1. 自定义CMyListView,继承自CListView, 实现点击表头进行该列排序以及固定某些列宽的功能。使用时直接继承此View即可。 2. 自定义CMyListCtrl, 继承自CMFCListCtrl, 同样实现上述功能,用于listctrl控件。使用时,将控件的control变量更改为CMyListCtrl即可。
VC CListCtrl 隔行标签颜色 选定行颜色及字体
VC/MFC CListCtrl如何高亮选中一行、单行、双行及完成状态 自绘控件 问题:CListCtrl如何高亮选中一行 http://zhidao.baidu.com/question/100664911.html 扩展:单行、双行及完成状态的字体等等。。。 主要是改写CListCtrl中的ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)消息, 1、在ListCtrlEx.h中增加 http://hi.baidu.com/juncox/blog/item/cf1f310fa5f2d0c37bcbe12d.html //{{AFX_MSG(CListCtrlEx) afx_msg void OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult); //}}AFX_MSG 2、进行消息映射 BEGIN_MESSAGE_MAP(CListCtrlEx, CListCtrl) //{{AFX_MSG_MAP(CListCtrlEx) ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw) //}}AFX_MSG_MAP END_MESSAGE_MAP() 3、函数本体参见压缩包内 void CListCtrlEx::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
easyui datagrid 点击表头排序问题
1、当前页排序:     设置datagrid的属性:remoteSort : false,     设置列属性:sortable:true 2、点击表头,所有数据重新排序设置 设置datagrid属性:remoteSort : true, 设置列属性:sortable:true 这个后端接收参数sort 和order 其中,sort表示排序的字段,orde
CListCtrl 实现排序功能并且添加图标
CListCtrl实现排序,列标题添加排序图标 ,供参考研究
JS 点击标题进行排序
<!DOCTYPE html> <html> <head> <title>JS点击标题排序</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3" /> <meta http-eq
iOS UIButton(按钮)点击改变背景色和标题颜色的简单实现
很多时候需要按钮点击变色, UI 设计师给了点击的颜色和标题的颜色, 假设按下的背景色是黄色(yellow),标题色是白色(white), 而普通状态下的背景色是红色(red), 标题色是绿色(green) 则可以这样: btn.backgroundColor = UIColor.red // 初始的背景色, 即...
oracle为相同行记录增加序号列(row_number()函数)
 文章提取自 : http://blog.sina.com.cn/s/blog_475839a50100s2q3.html     表结构及测试数据如下: CREATE TABLE t_row_str( ID INT, col VARCHAR2(10)); INSERT INTO t_row_str VALUES(1,'a'); INSERT INTO t_row_str VALU...
ClistCtrl快速设置列宽随控件变化
1)定义变量,列宽百分,注总和小于1 double ColWidth1[LIST_COLUMN_NUM] ={0.1, 0.4, 0.48}; CString HeaderText1[LIST_COLUMN_NUM] ={_T("序号"), _T("名字), _T("生日")}; 2)初始插入:略 3)调整列宽:在要调整的地方 //IDC_LIST1资...
DevExpress的GridControl控件绑定动态数据时列排序问题解决
GridControl是一个表格组件,可以格式化显示结构数据。其基本使用方法如下: [code="java"] [/code] 在上述例子中,GridControl的列在xaml文件里已经设定,顺序是排好的。当GridControl的控件在...
【MFC笔记】列表控件CListctrl中,通过右键修改某行数据
1、在之前的项目中添加,右键鼠标菜单,第二个改为修改,添加信息。 2、消息响应函数中,先获取鼠标点击的行号 int nItem = m_List.GetSelectionMark();//确定选中行的行号 3、新建一个对话框实例(之前创建的Do_Add 类) INT_PTR nRes; // 用于后面保存 DoModal 函数的返回值 Do_Add tipDlg; //...
点击MSFlexGrid数据控件的标题进行数据排序
在进行数据库编程的时候,经常会用到MSFlexGrid控件进行数据显示。并且对数据进行排序是必不可少的一个环节。使用WINDOWS系统的用户,会习惯于点击标题进行数据排序。而MSFlexGrid控件本身没有这个功能,笔者经过实践,总结出了点击MSFlexGrid标题进行排序的方法,与大家一起分享。 先添加MSFlexGrid控件,方法:菜单->工程->部件->Micros...
SWT表格管理类(包括表头排序,隔行颜色,表格宽度自适应)
SWT表格管理类,包括表头排序事件,table宽度自适应事件,隔行颜色事件