Add ActiveX Tabs to FeatureManager Design Tree (VBA)
This example shows how to add tabs to a split FeatureManager design tree, using
an on-disk bitmap file for the tabs' icon.
'----------------------------------------------------------
' Preconditions:
' 1. In the IDE:
' a. Insert Microsoft Calendar Control 2007
' (click Insert > Components > Microsoft Calendar
' Control 2007).
' b. Reference Microsoft Calendar Control 2007's ActiveX
' control file (click Tools > References > Browse button,
' browse to c:\Program Files\Microsoft Office\Office12,
' and select MSCAL.OCX).
' 2. Specified part document and bitmap exist.
'
' Postconditions:
' 1. The FeatureManager design tree is split.
' 2. A new tab is added to each FeatureManager design tree;
' the top Microsoft Calendar Control's background is black and
' the bottom Microsoft Calendar Control's background is red.
' 3. The new tab on the top FeatureManager design tree is active.
'
' NOTE: Because the part document is used elsewhere,
' do not save any changes when closing it.
'----------------------------------------------------------
Option Explicit
Sub main()
Const iconSmall As String = "C:\Program Files\SolidWorks Corp\SolidWorks\data\user macro icons\button.bmp"
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModViewMgr As SldWorks.ModelViewManager
Dim swFeatMgrTabTop As SldWorks.FeatMgrView
Dim swFeatMgrTabBtm As SldWorks.FeatMgrView
Dim ctrlTop As MSACAL.Calendar
Dim ctrlBtm As MSACAL.Calendar
Dim fileName As String
Dim errors As Long
Dim warnings As Long
Dim activePane As Long
Set swApp = CreateObject("SldWorks.Application")
fileName = "c:\Program Files\SolidWorks Corp\SolidWorks\samples\tutorial\fillets\knob.sldprt"
Set swModel = swApp.OpenDoc6(fileName, swDocPART, swOpenDocOptions_Silent, "", errors, warnings)
Set swModViewMgr = swModel.ModelViewManager
' Split the FeatureManager design tree;
' the original is displayed below the copy
swModel.FeatureManagerSplitterPosition = 0.5
' New tab on copy of FeatureManager design tree
Set swFeatMgrTabTop = swModViewMgr.CreateFeatureMgrControl2(iconSmall, "MSCAL.Calendar", "", "Top tab ToolTip", swFeatMgrPaneTop)
Set ctrlTop = swFeatMgrTabTop.GetControl
ctrlTop.BackColor = 0 ' black
' New tab on original FeatureManager design tree
Set swFeatMgrTabBtm = swModViewMgr.CreateFeatureMgrControl2(iconSmall, "MSCAL.Calendar", "", "Bottom tab ToolTip", swFeatMgrPaneBottom)
Set ctrlBtm = swFeatMgrTabBtm.GetControl
ctrlBtm.BackColor = 255 ' red
activePane = swFeatMgrTabTop.ActivateView
End Sub