LISTCTRL上一列动态生成进度条的郁闷问题

想要在LISTCTRL某一列上动态生成进度条,而且进度条上又可以实时地显示进度信息,从网上找了好多例子, 但是没有一个合适的。后来自己对一个网上的类进行修改,终于可以动态生成progress ctrl了。

1.刚开始,为了空间复杂度的考虑,只定义了个指针,用new堆生成一个变量,然后放到listctrl上, 可是程序运行起来,进度条根本没有显示出来,后来仔细一想,这就是堆和栈变量的区别了,在初始化函数完成后,堆变量的作用生命也就结束了,当然不显示,没办法,只好用了栈变量。

2.之后的问题如江水一般而来,由于进度条动态生成,相当于漂浮在listctrl上,那么在窗口size变化或者listctrl的滚动条变化时候,必须要重载onsize函数来movewindow。对于listctrl的垂直滚动条,大家要注意, 当顶上的item被拉到header上面时,这个时候movewindow的位置一定要注意,因为header是不包括在listctrl的客户区,如果你movewindow到 header的区域,会把标题列覆盖,最好的办法就是判断item的top是否小于header的bottom,如果是,而什么也不做,也就是不显示该item了;否则就移动窗口

3对于水平滚动条,原理如2,但是要响应listctrl的滚动条的消息,一定要重载listctrl类才可以,在重载类里进行消息影射。

4.添加窗口类的hscroll,vscroll响应消息

问题:1。选种的item在改变时,有轻微闪烁

2.ietm选择变化时,背景色恢复有半秒的延迟,还没有好的办法解决。

发上截图

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值