Add ActiveX Tabs to FeatureManager Design Tree (C#)
This example shows how to add tabs to a split FeatureManager design tree,
using an on-disk bitmap file for the tabs' icons.
//----------------------------------------------------------
// Preconditions:
// 1. In the IDE:
// a. Reference Microsoft Calendar Control's ActiveX
// control file (click Project > Add Reference >
// Browse tab).
// b. Browse to:
// c:\Program Files\Microsoft Office\Office12\MSCAL.OCX
// and click OK.
// 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.
//----------------------------------------------------------
using
SolidWorks.Interop.sldworks;
using
SolidWorks.Interop.swconst;
using
MSACAL;
namespace
AddTabsFeatureManagerDesignTreeCSharp.csproj
{
partial
class
SolidWorksMacro
{
public
void Main()
{
const
string
iconSmall = "C:\\Program
Files\\SolidWorks Corp\\SolidWorks\\data\\user macro icons\\button.bmp";
ModelDoc2 swModel = default(ModelDoc2);
ModelViewManager swModViewMgr =
default(ModelViewManager);
FeatMgrView swFeatMgrTabTop =
default(FeatMgrView);
FeatMgrView swFeatMgrTabBtm =
default(FeatMgrView);
MSACAL.Calendar ctrlTop =
default(MSACAL.Calendar);
MSACAL.Calendar ctrlBtm =
default(MSACAL.Calendar);
string
fileName = null;
int
errors = 0;
int
warnings = 0;
int
activePane = 0;
fileName = "c:\\Program
Files\\SolidWorks Corp\\SolidWorks\\samples\\tutorial\\fillets\\knob.sldprt";
swModel = (ModelDoc2)swApp.OpenDoc6(fileName, (int)swDocumentTypes_e.swDocPART,
(int)swOpenDocOptions_e.swOpenDocOptions_Silent,
"",
ref errors,
ref
warnings);
swModViewMgr = (ModelViewManager)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
swFeatMgrTabBtm =
(FeatMgrView)swModViewMgr.CreateFeatureMgrControl2(iconSmall,
"MSCAL.Calendar",
"",
"Bottom tab ToolTip",
(int)swFeatMgrPane_e.swFeatMgrPaneBottom);
ctrlBtm = (MSACAL.Calendar)swFeatMgrTabBtm.GetControl();
ctrlBtm.BackColor = 255; //red
//
New tab on original of FeatureManager design tree
swFeatMgrTabTop =
(FeatMgrView)swModViewMgr.CreateFeatureMgrControl2(iconSmall,
"MSCAL.Calendar",
"",
"Top tab ToolTip",
(int)swFeatMgrPane_e.swFeatMgrPaneTop);
ctrlTop = (MSACAL.Calendar)swFeatMgrTabTop.GetControl();
ctrlTop.BackColor = 0; //black
activePane =
swFeatMgrTabTop.ActivateView();
}
///
<summary>
///
The SldWorks swApp variable is pre-assigned for you.
///
</summary>
public
SldWorks swApp;
}
}