zoukankan      html  css  js  c++  java
  • 在 FlexGrid 控件中指定最右侧显示的列

    FlexGrid 控件提供了指定左侧显示列的功能。因项目的需要,要求能够指定最右侧显示的列。
    实现方法:
    获取表格客户区宽度,然后通过每列的宽度计算出水平滚动条的位置。
    但是有一个麻烦,就是垂直滚动条的问题。
    首先要能判断是否有垂直滚动条,
    然后有垂直滚动条时,需要减出垂直滚动条的宽度,
    但是控件没有提供这方面的接口。

    猜想控件的滚动条可能是两种情况:
    1。FlexGrid是复合控件,其中包含了滚动条对象。
    这样的话,用reflector查看一下对象命名,可以通过反射访问到内部的滚动条对象。

    2。是传统Win32的滚动窗体。
    这样的话,可以通过win32 api函数来判断。

    用reflector看了一下控件代码,是第二种情况。
    所以用win32 api来解决。
    用api函数
    lStyle = GetWindowLong(hWnd, GWL_STYLE);
    获取Style然后判断
    Style中是否有 WS_VSCROLL

    如果有就代表有 垂直滚动条。
    再获取 滚动条的最大值和最小值,如果相等则滚动条不可见。不相等则可见。

  • 相关阅读:
    学习篇之String()
    js之Math对象
    js之date()对象
    css之描点定位方式
    js详解之作用域-实例
    js精要之构造函数
    js精要之继承
    js精要之模块模式
    js精要之对象属性
    js精要之函数
  • 原文地址:https://www.cnblogs.com/rick/p/1230268.html
Copyright © 2011-2022 走看看