.

解决方案 »

  1.   

    Const GWL_STYLE = (-16)Const WSB_PROP_VSTYLE = &H100
    Const FSB_FLAT_MODE = 2
    Const FSB_ENCARTA_MODE = 1
    Const FSB_REGULAR_MODE = 0Const SB_HORZ = 0
    Const SB_VERT = 1
    Const SB_BOTH = 3Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function InitializeFlatSB Lib "comctl32" (ByVal hWnd As Long) As Long
    Private Declare Function UninitializeFlatSB Lib "comctl32" (ByVal hWnd As Long) As Long
    Private Declare Function FlatSB_SetScrollProp Lib "comctl32" (ByVal hWnd As Long, ByVal index As Long, ByVal newValue As Long, ByVal fRedraw As Boolean) As Boolean
    Private Sub Form_Activate()
        'Initialize
        InitializeFlatSB MSHFlexGrid1.hWnd
        FlatSB_SetScrollProp MSHFlexGrid1.hWnd, WSB_PROP_VSTYLE, FSB_ENCARTA_MODE, True
    End Sub
    Private Sub Form_Load()
        Dim Ret As Long
        Dim I, J As Integer
        MSHFlexGrid1.Cols = 10
        MSHFlexGrid1.Rows = 20
        For I = 1 To 9
            For J = 1 To 19
                MSHFlexGrid1.TextMatrix(J, I) = J & "行" & I & "列"
            Next
        Next I
        
        Ret = GetWindowLong(MSHFlexGrid1.hWnd, GWL_STYLE)
        Ret = Ret Or WS_VSCROLL Or WS_HSCROLL
        SetWindowLong MSHFlexGrid1.hWnd, GWL_STYLE, Ret
        
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
        UninitializeFlatSB MSHFlexGrid1.hWnd
    End Sub
      

  2.   

    主要使用以下API:Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function InitializeFlatSB Lib "comctl32" (ByVal hWnd As Long) As Long
    Private Declare Function UninitializeFlatSB Lib "comctl32" (ByVal hWnd As Long) As Long
    Private Declare Function FlatSB_SetScrollProp Lib "comctl32" (ByVal hWnd As Long, ByVal index As Long, ByVal newValue As Long, ByVal fRedraw As Boolean) As Boolean
    Private Declare Function FlatSB_EnableScrollBar Lib "comctl32" (ByVal hWnd As Long, ByVal wSBflags As Long, ByVal wArrows As Long) As Long
    Private Declare Function FlatSB_GetScrollInfo Lib "comctl32" (ByVal hWnd As Long, ByVal fnBar As Long, lpsi As SCROLLINFO) As Boolean
    Private Declare Function FlatSB_GetScrollProp Lib "comctl32" (ByVal hWnd As Long, ByVal index As Long, pValue As Long) As Boolean
    Private Declare Function FlatSB_GetScrollRange Lib "comctl32" (ByVal hWnd As Long, ByVal code As Long, lpMinPos As Long, lpMaxPos As Long) As Boolean
    Private Declare Function FlatSB_SetScrollInfo Lib "comctl32" (ByVal hWnd As Long, ByVal fnBar As Long, lpsi As SCROLLINFO, ByVal fRedraw As Boolean) As Long
    Private Declare Function FlatSB_SetScrollPos Lib "comctl32" (ByVal hWnd As Long, ByVal code As Long, ByVal nPos As Long, ByVal fRedraw As Boolean) As Long
    Private Declare Function FlatSB_SetScrollRange Lib "comctl32" (ByVal hWnd As Long, ByVal code As Long, ByVal nMinPos As Long, ByVal nMaxPos As Long, ByVal fRedraw As Boolean) As Long
    Private Declare Function FlatSB_ShowScrollBar Lib "comctl32" (ByVal hWnd As Long, ByVal code As Long, ByVal fShow As Boolean) As Boolean
    Private Declare Function FlatSB_GetScrollPos Lib "comctl32" (ByVal hWnd As Long, ByVal code As Long) As Long
      

  3.   


    不过我认为自已做比较好
    将mshflexgrid的滚动条设为none
    用picturebox模拟可以实现很多功能,而且简单!
      

  4.   

    FlatSB_SetScrollProp 就是这个API函数!Sets the properties for a flat scroll bar.你运行我最上面的代码看看!需要改的,自己改改就行了!-------------------------------------------
    to  progame() 
    你又在写控件了?我看过你写的打印控件,挺不错!
      

  5.   

    在写一个可以编辑的网格控件http://jinesc.6600.org/bbs/disp.asp?idd=47177&room=111
      

  6.   

    能不能突破400,000的cell个数限制?
    是用VB+ComboBox+Command+TextBox写的吗?