比如说LB_SETHORIZONTALEXTENT为listbox水平滚动条常量,哪个是msflexgrid的呢?

解决方案 »

  1.   

    倒....
    msflexgrid不是标准的系统控件,恐怕不能用这种方法吧...
      

  2.   

    有的, 下面这代码只是判断滚动条的存在与否,宽度设置我记得以前写过, 还要找,吃饭先....Private Declare Function GetScrollRange Lib "user32" (ByVal hwnd As Long, ByVal nBar As Long, lpMinPos As Long, lpMaxPos As Long) As Long
    Private Declare Function SetScrollRange Lib "user32" (ByVal hwnd As Long, ByVal nBar As Long, ByVal nMinPos As Long, ByVal nMaxPos As Long, ByVal bRedraw As Long) As Long'WM_HSCROLL和WM_VSCROLL
    Const SB_HORZ = &H0
    Const SB_VERT = &H1Private Sub Form_Activate()
      ' MSHFlexGrid1.Width = Me.Width
       Call SetScrollRange(MSHFlexGrid1.hwnd, SB_HORZ, 0, Me.Width, True)
    End SubPrivate Sub Command1_Click()
       MsgBox HeScroll(MSHFlexGrid1) '判断水平滚动条是否存在
       MsgBox VsScroll(MSHFlexGrid1) '判断垂直滚动条是否存在
    End SubPublic Function VsScroll(MshGrid As MSHFlexGrid) As Boolean '判断水平滚动条的可见性
    Dim i As Long
    VsScroll = False
    i = GetScrollRange(MshGrid.hwnd, SB_HORZ, lpMinPos, lpMaxPos)
    If lpMaxPos <> lpMinPos Then VsScroll = True
    End FunctionPublic Function HeScroll(MshGrid As MSHFlexGrid) As Boolean '判断垂直滚动条的可见性
       Dim i As Long
       HeScroll = False
       i = GetScrollRange(MshGrid.hwnd, SB_VERT, lpMinPos, lpMaxPos)
       If lpMaxPos <> lpMinPos Then HeScroll = True
    End Function