我想重绘listview的垂直滚动条,如何得到垂直滚动条的句柄?

解决方案 »

  1.   

    垂直滚动条在None-client area,没有句柄
      

  2.   

    to qpl007(蓝色闪电) :
    帮个忙
      

  3.   

    to qpl007(蓝色闪电) :
    我现在只有一个问题:获得垂直滚动条的矩形和位置!
      

  4.   

    to qpl007(蓝色闪电) :
    不好意思,说错了,
    我现在只有一个问题:获得垂直滚动条中间拖动条的矩形和位置!
      

  5.   

    try:用 SystemInformation.VerticalScrollBarWidth 获取垂直滚动条的宽度(以像素为单位)。
    然后用 listview 的宽度减去这个宽度就是你想要的矩形宽度。矩形高度就是 listview 的高度
      

  6.   

    用API也只能找到scrollbar的句柄而已。
      

  7.   

    to: hcfyxy(无名)
    我现在有个式子计算可拖动部分的巨型和位置,但有些不准确,
    rect.Height = (int) Math.Round((double) (((double) (this.Height - 0x23)) / (((double)( si.nMax )) / ((double) si.nPage))));
    rect.Y = (int) Math.Round((double) (((((double) si.nPos) / ((double) si.nMax))* (this.Height - 0x28  )) + 17  ));能不提供些资料?[email protected]
      

  8.   

    首先要在WndProc中截取绘制滚动条的消息,然后根据句柄获取当前窗口的DC,然后就自己用GDI画吧
      

  9.   

    to:zhgroup()
    我就是这么做的,但是计算可拖动部分的巨型和位置的位置,有些不准确
    rect.Height = (int) Math.Round((double) (((double) (this.Height - 0x23)) / (((double)( si.nMax )) / ((double) si.nPage))));
    rect.Y = (int) Math.Round((double) (((((double) si.nPos) / ((double) si.nMax))* (this.Height - 0x28  )) + 17  ));能不提供些资料?[email protected]