CListCtr当前显示的最下面一行如何像向统计报表那样显示合计?

时间:2021-05-05 10:32:12
CListCtr栅格控件,要显示一个报表,,最下面一行显示统计结果,,如果栅格不能左右移动是可以在下面画增加一行,
关键是CListCtr栅格控件还有左右移动,鼠标能拖动改变标题栏,,,,所以在ClistCtr控件的 当前显示部分最后一行如何
只显示统计信息,,,

11 个解决方案

#1


该回复于2012-04-13 11:13:03被版主删除

#2


原理不是一样的么
不管你怎么调整列
最下面不都是这一列的统计么

#3


拖动之后再重画就可以吧

#4


这最后一行的数据,是你自己计算出来的,把计算出来的结果,直接插入到列表最后一行,不可以吗?

#5


1)固定表头,可在表底部画一行统计,,因为栅格线还有列不变

2)如果列可左右移动,标题宽度也可变化,
  a)如果有200行 ,当前显示是1-20行,,假如你在第20行现结果,
     那么用户滚动鼠标这是栅格显示3-23行,你又在显示的第20行显统计结果,相当与23行(这根本行不通)
  b)在栅格外增加自己绘的一行,显示是没问题,关键是列数多。或鼠标拖拉标题宽度的时候,底部自己绘制的不同列的统计也应该变化,,,
    问题关键在这里——> 如何获取 宽度,及当先列显示情况
        如有30列,现在现1-10列,,用户水平拖动后变成 3-13列,,还有宽度也变化,如何获取这些消息
        如果准确获取这些消息,问题就解决了,,,哪位弄个的朋友指导一下

#6


可以用两个listctrl,一个用来正常显示列表的数据(ListA),另外一个放在底部专门显示统计结果(ListB)
用GetColumnWidth()获取ListA的列宽,SetColumnWidth()设置ListB的列宽

#7


该回复于2012-04-13 10:48:35被版主删除

#8


a)如果有200行 ,当前显示是1-20行,,假如你在第20行现结果,
  那么用户滚动鼠标这是栅格显示3-23行,你又在显示的第20行显统计结果,相当与23行(这根本行不通)
--------------------------------
你这叫什么统计啊

#9


可以用两个listctrl,一个用来正常显示列表的数据(ListA),另外一个放在底部专门显示统计结果(ListB)
用GetColumnWidth()获取ListA的列宽,SetColumnWidth()设置ListB的列宽
这个是个很好的思路,,由于初学,,,我想具体从那个方面,获取ListA的列宽当前位置(就是同步的消息,并设置ListB 与ListA 水平操作同步) 谢谢!!

#10


这里对listctrl的使用总结希望对你有些启示
http://www.cppblog.com/amazon/archive/2008/11/29/68159.html

#11


看到一个CListCtr的扩展类CGridCtrl好像能实现该功能,没有试过,哪位用过指导,指导

#1


该回复于2012-04-13 11:13:03被版主删除

#2


原理不是一样的么
不管你怎么调整列
最下面不都是这一列的统计么

#3


拖动之后再重画就可以吧

#4


这最后一行的数据,是你自己计算出来的,把计算出来的结果,直接插入到列表最后一行,不可以吗?

#5


1)固定表头,可在表底部画一行统计,,因为栅格线还有列不变

2)如果列可左右移动,标题宽度也可变化,
  a)如果有200行 ,当前显示是1-20行,,假如你在第20行现结果,
     那么用户滚动鼠标这是栅格显示3-23行,你又在显示的第20行显统计结果,相当与23行(这根本行不通)
  b)在栅格外增加自己绘的一行,显示是没问题,关键是列数多。或鼠标拖拉标题宽度的时候,底部自己绘制的不同列的统计也应该变化,,,
    问题关键在这里——> 如何获取 宽度,及当先列显示情况
        如有30列,现在现1-10列,,用户水平拖动后变成 3-13列,,还有宽度也变化,如何获取这些消息
        如果准确获取这些消息,问题就解决了,,,哪位弄个的朋友指导一下

#6


可以用两个listctrl,一个用来正常显示列表的数据(ListA),另外一个放在底部专门显示统计结果(ListB)
用GetColumnWidth()获取ListA的列宽,SetColumnWidth()设置ListB的列宽

#7


该回复于2012-04-13 10:48:35被版主删除

#8


a)如果有200行 ,当前显示是1-20行,,假如你在第20行现结果,
  那么用户滚动鼠标这是栅格显示3-23行,你又在显示的第20行显统计结果,相当与23行(这根本行不通)
--------------------------------
你这叫什么统计啊

#9


可以用两个listctrl,一个用来正常显示列表的数据(ListA),另外一个放在底部专门显示统计结果(ListB)
用GetColumnWidth()获取ListA的列宽,SetColumnWidth()设置ListB的列宽
这个是个很好的思路,,由于初学,,,我想具体从那个方面,获取ListA的列宽当前位置(就是同步的消息,并设置ListB 与ListA 水平操作同步) 谢谢!!

#10


这里对listctrl的使用总结希望对你有些启示
http://www.cppblog.com/amazon/archive/2008/11/29/68159.html

#11


看到一个CListCtr的扩展类CGridCtrl好像能实现该功能,没有试过,哪位用过指导,指导