Hide

SftTabs/OCX 6.5 - Tab Control for VB6

Display
Print

MDITab Sample - Main Form (VB6)

This sample demonstrates the Main form of an MDI application with a tab control used to switch between documents.

Also see MDITab Document Form

The source code is located at C:\Program Files (x86)\Softelvdm\SftTabs OCX 6.5\Samples\MDITab\frmMain.frm or C:\Program Files\Softelvdm\SftTabs OCX 6.5\Samples\MDITab\frmMain.frm (on 32-bit Windows versions).


' Most of the code shown implements a very simple MDI style application
' To find the code which handles tab switching and tab management, search for
' SftTabs1.  Actually, don't be surprised if you find very little code.
' Make sure to also look at the code for the Form "frmDocument".

Private Declare Function OSWinHelp% Lib "user32" Alias "WinHelpA" (ByVal hwnd&, ByVal HelpFile$, ByVal wCommand%, dwData As Any)

Private Sub MDIForm_Load()
    Me.Left = GetSetting(App.Title, "Settings", "MainLeft", 1000)
    Me.Top = GetSetting(App.Title, "Settings", "MainTop", 1000)
    Me.Width = GetSetting(App.Title, "Settings", "MainWidth", 6500)
    Me.Height = GetSetting(App.Title, "Settings", "MainHeight", 6500)

    LoadNewDoc

    ' Resize the tab control's height so it uses the least amount
    ' of space possible
    SftTabs1.MakeNaturalSize

    MsgBox ("Please use File, New to add documents.  Notice how the tab" & _
        " control shows the name of each document.")

End Sub

Private Sub LoadNewDoc()
    Static lDocumentCount As Long
    Dim frmD As frmDocument
    Dim iTab As Integer

    lDocumentCount = lDocumentCount + 1
    Set frmD = New frmDocument
    frmD.Caption = "Document " & lDocumentCount
    frmD.Show

    ' Add a new tab associated with this MDI child window
    ' We'll save a reference to the form object in the tab's Tag1
    ' property
    With SftTabs1.Direct
        ' add the tab
        iTab = .Tabs.Add(frmD.Caption)
        ' define colors
        .Tab(iTab).BackColorStart = &HFEECDD
        .Tab(iTab).BackColorEnd = &HE2A981
        .Tab(iTab).BackColor = &HE2A981
        .Tab(iTab).BackColorActiveStart = &HFEECDD
        .Tab(iTab).BackColorActiveEnd = &HE2A981
        .Tab(iTab).BackColorActive = &HE2A981
        ' define a close button for the tab
        .Tab(iTab).CloseButton = True
        ' define a tooltip for the tab
        .Tab(iTab).ToolTip = "This tab activates the form named " & frmD.Caption
        ' and save a reference to the MDI child form object that this
        ' tab represents
        .Tab(iTab).Tag1 = frmD
        .Tabs.Current = iTab ' make this the current tab
    End With
End Sub

Private Sub OpenDoc(ByVal Name As String)
    Dim frmD As frmDocument
    Dim iTab As Integer

    Set frmD = New frmDocument
    frmD.Caption = Name
    frmD.Show

    ' Add a new tab associated with this MDI child window
    ' We'll save a reference to the form object in the tab's Tag1
    ' property
    With SftTabs1.Direct
        ' add the tab
        iTab = .Tabs.Add(frmD.Caption)
        ' define colors
        .Tab(iTab).BackColorStart = &HFEECDD
        .Tab(iTab).BackColorEnd = &HE2A981
        .Tab(iTab).BackColor = &HE2A981
        .Tab(iTab).BackColorActiveStart = &HFEECDD
        .Tab(iTab).BackColorActiveEnd = &HE2A981
        .Tab(iTab).BackColorActive = &HE2A981
        ' define a close button for the tab
        .Tab(iTab).CloseButton = True
        ' define a tooltip for the tab
        .Tab(iTab).ToolTip = "This tab activates the form named " & frmD.Caption
        ' and save a reference to the MDI child form object that this
        ' tab represents
        .Tab(iTab).Tag1 = frmD
    End With
End Sub

Private Sub MDIForm_Unload(Cancel As Integer)
    If Me.WindowState <> vbMinimized Then
        SaveSetting App.Title, "Settings", "MainLeft", Me.Left
        SaveSetting App.Title, "Settings", "MainTop", Me.Top
        SaveSetting App.Title, "Settings", "MainWidth", Me.Width
        SaveSetting App.Title, "Settings", "MainHeight", Me.Height
    End If
End Sub


Private Sub mnuHelpAbout_Click()
    MsgBox "About Box Code goes here!"
End Sub

Private Sub SftTabs1_Switched()
    With SftTabs1.Direct
        ' The user has clicked on the tab control and the
        ' matching MDI child has to be made active
        ' We have saved a reference to the form object in
        ' the tab's Tag1 property of the tab control.
        If .Tabs.Current >= 0 Then
            .Tab(.Tabs.Current).Tag1.SetFocus
        End If
    End With
End Sub

Private Sub SftTabs1_TabClicked(ByVal DblClick As Boolean, ByVal TabClicked As Integer, ByVal TabArea As SftTabsLib.SftTabsTabAreaConstants)
     With SftTabs1.Direct
        If TabArea = tabareaSftTabsImage2 Then
            ' The user clicked the close button
            .CancelMode ' make sure the tab control doesn't further handle this click event
            ' first activate the tab (and the associated form)
            .Tabs.Current = TabClicked
            ' and unload the form
            Unload Me.ActiveForm
        End If
    End With
End Sub

Private Sub tbToolBar_ButtonClick(ByVal Button As ComctlLib.Button)

    Select Case Button.Key

        Case "New"
            LoadNewDoc
        Case "New"
            mnuFileNew_Click
        Case "Open"
            mnuFileOpen_Click
        Case "Save"
            mnuFileSave_Click
        Case "Print"
            mnuFilePrint_Click
        Case "Cut"
            mnuEditCut_Click
        Case "Copy"
            mnuEditCopy_Click
        Case "Paste"
            mnuEditPaste_Click
        Case "Bold"
            'To Do
            MsgBox "Bold Code goes here!"
        Case "Italic"
            'To Do
            MsgBox "Italic Code goes here!"
        Case "Underline"
            'To Do
            MsgBox "Underline Code goes here!"
        Case "Left"
            'To Do
            MsgBox "Left Code goes here!"
        Case "Center"
            'To Do
            MsgBox "Center Code goes here!"
        Case "Right"
            'To Do
            MsgBox "Right Code goes here!"
    End Select
End Sub

Private Sub mnuHelpContents_Click()

    Dim nRet As Integer

    'if there is no helpfile for this project display a message to the user
    'you can set the HelpFile for your application in the
    'Project Properties dialog
    If Len(App.HelpFile) = 0 Then
        MsgBox "Unable to display Help Contents. There is no Help associated with this project.", vbInformation, Me.Caption
    Else
        On Error Resume Next
        nRet = OSWinHelp(Me.hwnd, App.HelpFile, 3, 0)
        If Err Then
            MsgBox Err.Description
        End If
    End If
End Sub


Private Sub mnuHelpSearch_Click()
    Dim nRet As Integer
    'if there is no helpfile for this project display a message to the user
    'you can set the HelpFile for your application in the
    'Project Properties dialog
    If Len(App.HelpFile) = 0 Then
        MsgBox "Unable to display Help Contents. There is no Help associated with this project.", vbInformation, Me.Caption
    Else
        On Error Resume Next
        nRet = OSWinHelp(Me.hwnd, App.HelpFile, 261, 0)
        If Err Then
            MsgBox Err.Description
        End If
    End If
End Sub


Private Sub mnuWindowArrangeIcons_Click()
    Me.Arrange vbArrangeIcons
End Sub


Private Sub mnuWindowCascade_Click()
    Me.Arrange vbCascade
End Sub


Private Sub mnuWindowNewWindow_Click()
    'To Do
    MsgBox "New Window Code goes here!"
End Sub


Private Sub mnuWindowTileHorizontal_Click()
    Me.Arrange vbTileHorizontal
End Sub


Private Sub mnuWindowTileVertical_Click()
    Me.Arrange vbTileVertical
End Sub

Private Sub mnuEditCopy_Click()
    'To Do
    MsgBox "Copy Code goes here!"
End Sub


Private Sub mnuEditCut_Click()
    'To Do
    MsgBox "Cut Code goes here!"
End Sub


Private Sub mnuEditPaste_Click()
    'To Do
    MsgBox "Paste Code goes here!"
End Sub


Private Sub mnuEditPasteSpecial_Click()
    'To Do
    MsgBox "Paste Special Code goes here!"
End Sub


Private Sub mnuEditUndo_Click()
    'To Do
    MsgBox "Undo Code goes here!"
End Sub

Private Sub mnuFileOpen_Click()
    Dim sFile As String

    With dlgCommonDialog
        'To Do
        'set the flags and attributes of the
        'common dialog control
        .Filter = "All Files (*.*)|*.*"
        .ShowOpen
        If Len(.FileName) = 0 Then
            Exit Sub
        End If
        sFile = .FileName
    End With
    'process the opened file
    OpenDoc (sFile)
End Sub


Private Sub mnuFileClose_Click()
    'To Do
    Unload Me.ActiveForm
End Sub


Private Sub mnuFileSave_Click()
    'To Do
    MsgBox "Save Code goes here!"
End Sub


Private Sub mnuFileSaveAs_Click()
    'To Do
    'Setup the common dialog control
    'prior to calling ShowSave
    dlgCommonDialog.ShowSave
End Sub


Private Sub mnuFileSaveAll_Click()
    'To Do
    MsgBox "Save All Code goes here!"
End Sub


Private Sub mnuFileProperties_Click()
    'To Do
    MsgBox "Properties Code goes here!"
End Sub


Private Sub mnuFilePageSetup_Click()
    dlgCommonDialog.ShowPrinter
End Sub


Private Sub mnuFilePrintPreview_Click()
    'To Do
    MsgBox "Print Preview Code goes here!"
End Sub


Private Sub mnuFilePrint_Click()
    'To Do
    MsgBox "Print Code goes here!"
End Sub


Private Sub mnuFileSend_Click()
    'To Do
    MsgBox "Send Code goes here!"
End Sub


Private Sub mnuFileMRU_Click(Index As Integer)
    'To Do
    MsgBox "MRU Code goes here!"
End Sub


Private Sub mnuFileExit_Click()
    'unload the form
    Unload Me
End Sub

Private Sub mnuFileNew_Click()
    LoadNewDoc
End Sub



Last Updated 08/13/2020 - (email)
© 2024 Softel vdm, Inc.