none
CListCtrl滚动条的问题 RRS feed

  • 问题

  • 我默认生成的list不带滚动条,现在我让滚动条在我移动鼠标的时候调用ShowScrollBar显示出来,移动的时候再消失,现在遇到2个问题

    1.我用ShowScrollBar显示出来的滚动条和实际的滚动条不一样,

    我显示出来是这样的

    这时候这个滚动条是不好用的

    我点击滚动条之后他样子变成了这样

    并且出现过第二次滚动条的样子的时候,第二次再去显示他就是OK的

    我的目标是一直让他显示第二次的样子

    如果我不设置滚动条隐藏的话,缺省的也是第二次显示出来的样子

    VS2017和WIN10的环境

    2.list数据少的时候,这时候所有数据都已经显示出来了,我这时候不需要竖向滚动条,但是我调用ShowScrollBar(SB_VERT, TRUE);,竖向  滚动条还是显示出来了,怎么判断一个list是否需要显示滚动条呢?

    2019年5月10日 5:25

答案

  • 你好,

    感谢您在MSDN论坛发帖提问。

    >>我用ShowScrollBar显示出来的滚动条和实际的滚动条不一样

    我尝试通过调用ShowScrollBar函数将listctrl滚动条显示出来。遇到了你所描述的问题。但是当我通过调用ShowScrollBar函数将显示主窗口的滚动条时没有出现类似问题。我认为这可能是listctrl中存在的一个问题。

    如果你想要实现将默认生成不带滚动条的listctrl中的滚动条显示出来,我建议你可以直接右键控件,选择属性,将“No Scroll”中的“False”改为“TRUE”。

    >>list数据少的时候,这时候所有数据都已经显示出来了,我这时候不需要竖向滚动条,但是我调用ShowScrollBar(SB_VERT, TRUE);,竖向滚动条还是显示出来了,怎么判断一个list是否需要显示滚动条呢?

    使用上述更改属性的方法显示滚动条后,在数据完全显示后滚动条将会隐藏。或者你可以通过调用SetScrollInfo函数来设置滚动条的参数。当滚动小于页面大小时使滚动条隐藏。

    Best Regards,

    Jeanine Zhang
    • 已标记为答案 Hota_CT 2019年9月10日 2:53
    2019年5月13日 1:42
    版主