181 |
exUndo, An Undo operation is performed (CTR + Z), exRedo, A Redo operation is performed (CTR + Y). exUndoRedoUpdate, The Undo/Redo queue is updated
|
180 |
exLinkObjects, the user creates an element on the surface. The AllowLinkObjects property specifies the keys combination to allow user to link elements on the surface
// LayoutEndChanging event - Notifies your application once the control's layout has been changed. void OnLayoutEndChangingSurface1(long Operation) { /* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutEndChanging" ); OutputDebugStringW( _bstr_t(spSurface1->FormatABC(L"value = 9 ? `exLinkObjects` : value",Operation,vtMissing,vtMissing)) ); } // LayoutStartChanging event - Occurs when the control's layout is about to be changed. void OnLayoutStartChangingSurface1(long Operation) { EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutStartChanging" ); OutputDebugStringW( _bstr_t(spSurface1->FormatABC(L"value = 9 ? `exLinkObjects` : value",Operation,vtMissing,vtMissing)) ); } EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Node <b>1",long(-64),long(-64)); var_Elements->Add("Node <b>2",vtMissing,vtMissing); var_Elements->Add("Node <b>3",long(64),long(-64)); spSurface1->EndUpdate(); OutputDebugStringW( L"Hold SHIFT, click an element, and drag to another element to create a link between them" ); |
179 |
exEditObject, the user edits the element's caption
// Click event - Occurs when the user presses and then releases the left mouse button over the control. void OnClickSurface1() { // ElementFromPoint(-1,-1).Edit(0) } // LayoutEndChanging event - Notifies your application once the control's layout has been changed. void OnLayoutEndChangingSurface1(long Operation) { /* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutEndChanging" ); OutputDebugStringW( _bstr_t(spSurface1->FormatABC(L"value = 8 ? `exEditObject` : value",Operation,vtMissing,vtMissing)) ); } // LayoutStartChanging event - Occurs when the control's layout is about to be changed. void OnLayoutStartChangingSurface1(long Operation) { EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutStartChanging" ); OutputDebugStringW( _bstr_t(spSurface1->FormatABC(L"value = 8 ? `exEditObject` : value",Operation,vtMissing,vtMissing)) ); } EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowLinkControlPoint(EXSURFACELib::LinkControlPointEnum(EXSURFACELib::exAllowChangeTo | EXSURFACELib::exAllowChangeFrom | EXSURFACELib::exEndControlPoint | EXSURFACELib::exStartControlPoint)); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Node <b>1",long(-64),long(-64)); var_Elements->Add("Node <b>2",vtMissing,vtMissing); var_Elements->Add("Node <b>3",long(64),long(-64)); spSurface1->GetLinks()->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),"L1"); spSurface1->EndUpdate(); OutputDebugStringW( L"Click an element to edit its caption" ); |
178 |
exCreateObject, the user creates an element on the surface. The AllowCreateObject property specifies the keys combination to allow user to create elements on the surface
// LayoutEndChanging event - Notifies your application once the control's layout has been changed. void OnLayoutEndChangingSurface1(long Operation) { /* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutEndChanging" ); OutputDebugStringW( _bstr_t(spSurface1->FormatABC(L"value = 7 ? `exCreateObject` : value",Operation,vtMissing,vtMissing)) ); } // LayoutStartChanging event - Occurs when the control's layout is about to be changed. void OnLayoutStartChangingSurface1(long Operation) { EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutStartChanging" ); OutputDebugStringW( _bstr_t(spSurface1->FormatABC(L"value = 7 ? `exCreateObject` : value",Operation,vtMissing,vtMissing)) ); } EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowLinkControlPoint(EXSURFACELib::LinkControlPointEnum(EXSURFACELib::exAllowChangeTo | EXSURFACELib::exAllowChangeFrom | EXSURFACELib::exEndControlPoint | EXSURFACELib::exStartControlPoint)); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Node <b>1",long(-64),long(-64)); var_Elements->Add("Node <b>2",vtMissing,vtMissing)->PutSelected(VARIANT_TRUE); var_Elements->Add("Node <b>3",long(64),long(-64)); spSurface1->GetLinks()->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),"L1"); spSurface1->EndUpdate(); OutputDebugStringW( L"Double-click on the surface and immediately drag to a new position to create an element" ); |
177 |
exSelectNothing, the user clicks an empty zone of the surface. The AllowSelectNothing property specifies the keys combination to allow user to select nothing on the surface
// LayoutEndChanging event - Notifies your application once the control's layout has been changed. void OnLayoutEndChangingSurface1(long Operation) { /* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutEndChanging" ); OutputDebugStringW( _bstr_t(spSurface1->FormatABC(L"value = 6 ? `exSelectNothing` : value",Operation,vtMissing,vtMissing)) ); } // LayoutStartChanging event - Occurs when the control's layout is about to be changed. void OnLayoutStartChangingSurface1(long Operation) { EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutStartChanging" ); OutputDebugStringW( _bstr_t(spSurface1->FormatABC(L"value = 6 ? `exSelectNothing` : value",Operation,vtMissing,vtMissing)) ); } EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowSelectNothing(VARIANT_TRUE); spSurface1->PutAllowLinkControlPoint(EXSURFACELib::LinkControlPointEnum(EXSURFACELib::exAllowChangeTo | EXSURFACELib::exAllowChangeFrom | EXSURFACELib::exEndControlPoint | EXSURFACELib::exStartControlPoint)); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Node <b>1",long(-64),long(-64)); var_Elements->Add("Node <b>2",vtMissing,vtMissing)->PutSelected(VARIANT_TRUE); var_Elements->Add("Node <b>3",long(64),long(-64)); spSurface1->GetLinks()->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),"L1"); spSurface1->EndUpdate(); OutputDebugStringW( L"Select an element, and then click outside to select nothing" ); |
176 |
exSelectObject, the user clicks the object to get it selected. The AllowSelectObject property specifies the keys combination to allow user to select the object
// LayoutEndChanging event - Notifies your application once the control's layout has been changed. void OnLayoutEndChangingSurface1(long Operation) { /* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutEndChanging" ); OutputDebugStringW( _bstr_t(spSurface1->FormatABC(L"value = 5 ? `exSelectObject` : value",Operation,vtMissing,vtMissing)) ); } // LayoutStartChanging event - Occurs when the control's layout is about to be changed. void OnLayoutStartChangingSurface1(long Operation) { EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutStartChanging" ); OutputDebugStringW( _bstr_t(spSurface1->FormatABC(L"value = 5 ? `exSelectObject` : value",Operation,vtMissing,vtMissing)) ); } EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowLinkControlPoint(EXSURFACELib::LinkControlPointEnum(EXSURFACELib::exAllowChangeTo | EXSURFACELib::exAllowChangeFrom | EXSURFACELib::exEndControlPoint | EXSURFACELib::exStartControlPoint)); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Node <b>1",long(-64),long(-64)); var_Elements->Add("Node <b>2",vtMissing,vtMissing); var_Elements->Add("Node <b>3",long(64),long(-64)); spSurface1->GetLinks()->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),"L1"); spSurface1->EndUpdate(); OutputDebugStringW( _bstr_t("Hold ALT and click, then drag to select elements within the drawn rectangle. Click an element to select it. CTRL + CLick to uns") + "elect it" ); |
175 |
exMoveObject, the user moves the object. The AllowMoveObject property specifies the keys combination to allow user to move the object
// LayoutEndChanging event - Notifies your application once the control's layout has been changed. void OnLayoutEndChangingSurface1(long Operation) { /* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutEndChanging" ); OutputDebugStringW( _bstr_t(spSurface1->FormatABC(L"value = 4 ? `exMoveObject` : value",Operation,vtMissing,vtMissing)) ); } // LayoutStartChanging event - Occurs when the control's layout is about to be changed. void OnLayoutStartChangingSurface1(long Operation) { EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutStartChanging" ); OutputDebugStringW( _bstr_t(spSurface1->FormatABC(L"value = 4 ? `exMoveObject` : value",Operation,vtMissing,vtMissing)) ); } EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowLinkControlPoint(EXSURFACELib::LinkControlPointEnum(EXSURFACELib::exAllowChangeTo | EXSURFACELib::exAllowChangeFrom | EXSURFACELib::exEndControlPoint | EXSURFACELib::exStartControlPoint)); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Node <b>1",long(-64),long(-64)); var_Elements->Add("Node <b>2",vtMissing,vtMissing); var_Elements->Add("Node <b>3",long(64),long(-64)); spSurface1->GetLinks()->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),"L1"); spSurface1->EndUpdate(); OutputDebugStringW( L"Move an element" ); |
174 |
exResizeObject, the user resizes the object. The AllowResizeObject property specifies the keys combination to allow user to resize the object
// LayoutEndChanging event - Notifies your application once the control's layout has been changed. void OnLayoutEndChangingSurface1(long Operation) { /* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutEndChanging" ); OutputDebugStringW( _bstr_t(spSurface1->FormatABC(L"value = 3 ? `exResizeObject` : value",Operation,vtMissing,vtMissing)) ); } // LayoutStartChanging event - Occurs when the control's layout is about to be changed. void OnLayoutStartChangingSurface1(long Operation) { EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutStartChanging" ); OutputDebugStringW( _bstr_t(spSurface1->FormatABC(L"value = 3 ? `exResizeObject` : value",Operation,vtMissing,vtMissing)) ); } EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowLinkControlPoint(EXSURFACELib::LinkControlPointEnum(EXSURFACELib::exAllowChangeTo | EXSURFACELib::exAllowChangeFrom | EXSURFACELib::exEndControlPoint | EXSURFACELib::exStartControlPoint)); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Node <b>1",long(-64),long(-64))->PutAutoSize(VARIANT_FALSE); var_Elements->Add("Node <b>2",vtMissing,vtMissing)->PutAutoSize(VARIANT_FALSE); var_Elements->Add("Node <b>3",long(64),long(-64))->PutAutoSize(VARIANT_FALSE); spSurface1->GetLinks()->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),"L1"); spSurface1->EndUpdate(); OutputDebugStringW( L"Resize an element" ); |
173 |
exSurfaceHome, the user clicks the Home button on the control's toolbar, so the surface is restored to original position. The Home method has the same effect
// LayoutEndChanging event - Notifies your application once the control's layout has been changed. void OnLayoutEndChangingSurface1(long Operation) { /* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutEndChanging" ); OutputDebugStringW( _bstr_t(spSurface1->FormatABC(L"value = 2 ? `exSurfaceHome` : value",Operation,vtMissing,vtMissing)) ); } // LayoutStartChanging event - Occurs when the control's layout is about to be changed. void OnLayoutStartChangingSurface1(long Operation) { EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutStartChanging" ); OutputDebugStringW( _bstr_t(spSurface1->FormatABC(L"value = 2 ? `exSurfaceHome` : value",Operation,vtMissing,vtMissing)) ); } EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowLinkControlPoint(EXSURFACELib::LinkControlPointEnum(EXSURFACELib::exAllowChangeTo | EXSURFACELib::exAllowChangeFrom | EXSURFACELib::exEndControlPoint | EXSURFACELib::exStartControlPoint)); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Node <b>1",long(-64),long(-64)); var_Elements->Add("Node <b>2",vtMissing,vtMissing); var_Elements->Add("Node <b>3",long(64),long(-64)); spSurface1->GetLinks()->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),"L1"); spSurface1->EndUpdate(); OutputDebugStringW( L"Click the Home button" ); |
172 |
exSurfaceZoom, the user magnifies or shrinks the surface. The AllowZoomSurface property specifies the keys combination to allow user to zoom the surface
// LayoutEndChanging event - Notifies your application once the control's layout has been changed. void OnLayoutEndChangingSurface1(long Operation) { /* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutEndChanging" ); OutputDebugStringW( _bstr_t(spSurface1->FormatABC(L"value = 1 ? `exSurfaceZoom` : value",Operation,vtMissing,vtMissing)) ); } // LayoutStartChanging event - Occurs when the control's layout is about to be changed. void OnLayoutStartChangingSurface1(long Operation) { EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutStartChanging" ); OutputDebugStringW( _bstr_t(spSurface1->FormatABC(L"value = 1 ? `exSurfaceZoom` : value",Operation,vtMissing,vtMissing)) ); } EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowLinkControlPoint(EXSURFACELib::LinkControlPointEnum(EXSURFACELib::exAllowChangeTo | EXSURFACELib::exAllowChangeFrom | EXSURFACELib::exEndControlPoint | EXSURFACELib::exStartControlPoint)); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Node <b>1",long(-64),long(-64)); var_Elements->Add("Node <b>2",vtMissing,vtMissing); var_Elements->Add("Node <b>3",long(64),long(-64)); spSurface1->GetLinks()->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),"L1"); spSurface1->EndUpdate(); OutputDebugStringW( L"Click and drag the surface to reposition it" ); |
171 |
exSurfaceMove, the user scrolls or moves the surface. The AllowMoveSurface property specifies the keys combination to allow user to move / scroll the surface
// LayoutEndChanging event - Notifies your application once the control's layout has been changed. void OnLayoutEndChangingSurface1(long Operation) { /* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutEndChanging" ); OutputDebugStringW( _bstr_t(spSurface1->FormatABC(L"value = 0 ? `exSurfaceMove` : value",Operation,vtMissing,vtMissing)) ); } // LayoutStartChanging event - Occurs when the control's layout is about to be changed. void OnLayoutStartChangingSurface1(long Operation) { EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutStartChanging" ); OutputDebugStringW( _bstr_t(spSurface1->FormatABC(L"value = 0 ? `exSurfaceMove` : value",Operation,vtMissing,vtMissing)) ); } EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowLinkControlPoint(EXSURFACELib::LinkControlPointEnum(EXSURFACELib::exAllowChangeTo | EXSURFACELib::exAllowChangeFrom | EXSURFACELib::exEndControlPoint | EXSURFACELib::exStartControlPoint)); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Node <b>1",long(-64),long(-64)); var_Elements->Add("Node <b>2",vtMissing,vtMissing); var_Elements->Add("Node <b>3",long(64),long(-64)); spSurface1->GetLinks()->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),"L1"); spSurface1->EndUpdate(); OutputDebugStringW( L"Click and drag the surface to reposition it" ); |
170 |
FormatABC method formats the A,B,C values based on the giving expression and returns the result
|
169 |
FreezeEvents(Freeze) method prevents firing any event. For instance, FreezeEvents(True) freezes the control's events, no no event is fired, until the FreezeEvents(False) is called
|
168 |
The exAllowChangeFrom(0x20)/exAllowChangeTo(0x40) flag of LinkControlPointEnum type allows the user to adjust the link's from/to element by dragging and dropping the start control point (requires the exStartControlPoint/exEndControlPoint flag)
// LayoutEndChanging event - Notifies your application once the control's layout has been changed. void OnLayoutEndChangingSurface1(long Operation) { /* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutEndChanging" ); OutputDebugStringW( L"Operation" ); OutputDebugStringW( _bstr_t(spSurface1->GetFocusLink()->GetID()) ); } // LayoutStartChanging event - Occurs when the control's layout is about to be changed. void OnLayoutStartChangingSurface1(long Operation) { EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutStartChanging" ); OutputDebugStringW( L"Operation" ); OutputDebugStringW( _bstr_t(spSurface1->GetFocusLink()->GetID()) ); } EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowLinkControlPoint(EXSURFACELib::LinkControlPointEnum(EXSURFACELib::exAllowChangeTo | EXSURFACELib::exAllowChangeFrom | EXSURFACELib::exEndControlPoint | EXSURFACELib::exStartControlPoint)); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Node <b>1",long(-64),long(-64)); var_Elements->Add("Node <b>2",vtMissing,vtMissing); var_Elements->Add("Node <b>3",long(64),long(-64)); spSurface1->GetLinks()->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),"L1"); spSurface1->PutFocusLink("L1"); spSurface1->EndUpdate(); |
167 |
The LayoutStartChanging(exFocusLink)/LayoutEndChanging(exFocusLink) event notifies your application when the user focuses on a new link
// LayoutEndChanging event - Notifies your application once the control's layout has been changed. void OnLayoutEndChangingSurface1(long Operation) { /* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutEndChanging" ); OutputDebugStringW( L"Operation" ); OutputDebugStringW( _bstr_t(spSurface1->GetFocusLink()) ); } // LayoutStartChanging event - Occurs when the control's layout is about to be changed. void OnLayoutStartChangingSurface1(long Operation) { EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutStartChanging" ); OutputDebugStringW( L"Operation" ); OutputDebugStringW( _bstr_t(spSurface1->GetFocusLink()) ); } EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowLinkControlPoint(EXSURFACELib::LinkControlPointEnum(EXSURFACELib::exEndControlPoint | EXSURFACELib::exStartControlPoint)); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Node <b>1",long(-64),long(-64)); var_Elements->Add("Node <b>2",vtMissing,vtMissing); spSurface1->GetLinks()->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),"L1"); spSurface1->EndUpdate(); |
166 |
Focus a link
|
165 |
The caption is displayed on the back, so the picture overrides it. How can I place the caption on the foreground
|
164 |
Draws a frame arround the link's arrow
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowLinkControlPoint(EXSURFACELib::LinkControlPointEnum(0xffffff80 | EXSURFACELib::exAllowChangeTo | EXSURFACELib::exAllowChangeFrom | EXSURFACELib::exOrthoArrange | EXSURFACELib::exMiddleControlPoint | EXSURFACELib::exControlPoint | EXSURFACELib::exEndControlPoint | EXSURFACELib::exStartControlPoint)); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Element <sha ;;0>A",vtMissing,vtMissing); var_Elements->Add("Element <sha ;;0>B",long(164),long(64)); var_Elements->Add("Element <sha ;;0>B",long(0),long(132)); EXSURFACELib::ILinksPtr var_Links = spSurface1->GetLinks(); var_Links->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),vtMissing)->PutCustomPath("0.5,0.25,0.5,.75"); var_Links->Add(spSurface1->GetElements()->GetItem(long(3)),spSurface1->GetElements()->GetItem(long(2)),vtMissing)->PutCustomPath("0.5,0.25,0.5,.75"); EXSURFACELib::ILinkPtr var_Link = var_Links->Add(spSurface1->GetElements()->GetItem(long(3)),spSurface1->GetElements()->GetItem(long(1)),vtMissing); var_Link->PutShowLinkType(EXSURFACELib::ShowLinkTypeEnum(EXSURFACELib::exLinkStraight | EXSURFACELib::exLinkDirect)); var_Link->PutStartPos(EXSURFACELib::LeftAlignment); var_Link->PutArrowSize(8); var_Link->PutArrowColor(RGB(255,255,255)); var_Link->PutArrowFrameColor(RGB(0,0,0)); spSurface1->FitToClient(); spSurface1->EndUpdate(); |
163 |
Draws a frame arround the arrow for all links
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowLinkControlPoint(EXSURFACELib::LinkControlPointEnum(0xffffff80 | EXSURFACELib::exAllowChangeTo | EXSURFACELib::exAllowChangeFrom | EXSURFACELib::exOrthoArrange | EXSURFACELib::exMiddleControlPoint | EXSURFACELib::exControlPoint | EXSURFACELib::exEndControlPoint | EXSURFACELib::exStartControlPoint)); spSurface1->PutLinksArrowSize(8); spSurface1->PutLinksArrowColor(RGB(255,255,255)); spSurface1->PutLinksArrowFrameColor(RGB(0,0,0)); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Element <sha ;;0>A",vtMissing,vtMissing); var_Elements->Add("Element <sha ;;0>B",long(164),long(64)); var_Elements->Add("Element <sha ;;0>B",long(0),long(132)); EXSURFACELib::ILinksPtr var_Links = spSurface1->GetLinks(); var_Links->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),vtMissing)->PutCustomPath("0.5,0.25,0.5,.75"); var_Links->Add(spSurface1->GetElements()->GetItem(long(3)),spSurface1->GetElements()->GetItem(long(2)),vtMissing)->PutCustomPath("0.5,0.25,0.5,.75"); EXSURFACELib::ILinkPtr var_Link = var_Links->Add(spSurface1->GetElements()->GetItem(long(3)),spSurface1->GetElements()->GetItem(long(1)),vtMissing); var_Link->PutShowLinkType(EXSURFACELib::ShowLinkTypeEnum(EXSURFACELib::exLinkStraight | EXSURFACELib::exLinkDirect)); var_Link->PutStartPos(EXSURFACELib::LeftAlignment); spSurface1->FitToClient(); spSurface1->EndUpdate(); |
162 |
Change the size to display the arrow of the link
|
161 |
Change the size to display the arrows for all links
|
160 |
Extends the caption on the element's width
|
159 |
Gets the width/height of the element to fit its content ( as if the AutoSize property is True )
// AnchorClick event - Occurs when an anchor element is clicked. void OnAnchorClickSurface1(LPCTSTR AnchorID,LPCTSTR Options) { /* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); EXSURFACELib::IElementPtr var_Element = spSurface1->GetElements()->GetItem("Account"); var_Element->PutHeight(var_Element->GetAutoHeight()); } EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); EXSURFACELib::IElementPtr var_Element = spSurface1->GetElements()->Add(_bstr_t("<solidline> <c><b>Bank Account</b></solidline><br>+ owner: String <r><a 1;e64=gA8ABzABvABsABpABkg8JABuABlAAgAA4AAwisXjMYH0TAECM") + "YAjsCMwAM4AkMGhEGOUei0Yl8bkQAOAAlsGmsSlp0h0SgkCF8DgsNhUMhEKiESkYAoMlk8phssmcCltLMNTAFOlFDlc2l0amMxjomAAjAA5AA2tMaHcfplZk1blVDqtu" + "oNXjoAAEBA=>▲</a><br><solidline>+ balance: Currency = 0</solidline><br>+ deposit(amount: Currency)<r><a 2;e64=gA8ABjAA+AEC" + "MwAM8DABvABshoAOQAEAAHAAGEWjEajMGNoAMoAOgANERMgAOcHAAvAEJhcEh0Qh0Tg0CmkqMMFlUuhkxiMTisXjNCjk6EwAEYAHIAG1MjY7lUsnkwh8/nUClk5gwAAE" + "BA==>▲</a><br>+ withdraw(amount: Currency)",vtMissing,vtMissing); var_Element->PutID("Account"); var_Element->PutX(-128); var_Element->PutCaptionSingleLine(EXSURFACELib::exCaptionBreakWrap); var_Element->PutAutoSize(VARIANT_FALSE); var_Element->PutWidth(256); var_Element->PutHeight(var_Element->GetAutoHeight()); var_Element->PutCaptionAlign(EXSURFACELib::ContentAlignmentEnum(0x4)); |
158 |
Expandable-caption
// AnchorClick event - Occurs when an anchor element is clicked. void OnAnchorClickSurface1(LPCTSTR AnchorID,LPCTSTR Options) { /* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"AnchorID" ); } EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); EXSURFACELib::IElementPtr var_Element = spSurface1->GetElements()->Add(_bstr_t("<solidline> <c><b>Bank Account</b></solidline><br>+ owner: String <r><a 1;e64=gA8ABzABvABsABpABkg8JABuABlAAgAA4AAwisXjMYH0TAECM") + "YAjsCMwAM4AkMGhEGOUei0Yl8bkQAOAAlsGmsSlp0h0SgkCF8DgsNhUMhEKiESkYAoMlk8phssmcCltLMNTAFOlFDlc2l0amMxjomAAjAA5AA2tMaHcfplZk1blVDqtu" + "oNXjoAAEBA=>▲</a><br><solidline>+ balance: Currency = 0</solidline><br>+ deposit(amount: Currency)<r><a 2;e64=gA8ABjAA+AEC" + "MwAM8DABvABshoAOQAEAAHAAGEWjEajMGNoAMoAOgANERMgAOcHAAvAEJhcEh0Qh0Tg0CmkqMMFlUuhkxiMTisXjNCjk6EwAEYAHIAG1MjY7lUsnkwh8/nUClk5gwAAE" + "BA==>▲</a><br>+ withdraw(amount: Currency)",vtMissing,vtMissing); var_Element->PutID("Account"); var_Element->PutX(-256); var_Element->PutY(-164); var_Element->PutCaptionSingleLine(EXSURFACELib::exCaptionBreakWrap); var_Element->PutCaptionAlign(EXSURFACELib::ContentAlignmentEnum(0x4)); EXSURFACELib::IElementPtr var_Element1 = spSurface1->GetElements()->Add(_bstr_t("<solidline> <c><b>Person</b></solidline><br>+ name: String <r><a 1;e64=gA8ABzABvABsABpABkg8JABuABlAAgAA4AAwisXjMYH0TAECMYAjsCMw") + "AM4AkMGhEGOUei0Yl8bkQAOAAlsGmsSlp0h0SgkCF8DgsNhUMhEKiESkYAoMlk8phssmcCltLMNTAFOlFDlc2l0amMxjomAAjAA5AA2tMaHcfplZk1blVDqtuoNXjoAA" + "EBA=>▲</a><br><solidline># birth: Date</solidline><br>+ getCurrentAge(): int<r><a 2;e64=gA8ABjAA+AECMwAM8DABvABshoAOQAEAAH" + "AAGEWjEajMGNoAMoAOgANERMgAOcHAAvAEJhcEh0Qh0Tg0CmkqMMFlUuhkxiMTisXjNCjk6EwAEYAHIAG1MjY7lUsnkwh8/nUClk5gwAAEBA==>▲</a>",vtMissing,vtMissing); var_Element1->PutID("Person"); var_Element1->PutY(-164); var_Element1->PutCaptionSingleLine(EXSURFACELib::exCaptionBreakWrap); EXSURFACELib::IElementPtr var_Element2 = spSurface1->GetElements()->Add(_bstr_t("<solidline> <c><b>Student</b></solidline><br><solidline>+ classes: List<Course> <r><a 1;e64=gA8ABzABvABsABpABkg8JABuABlAA+AAgAE") + "CMcTi4AMwAM4AjMGhEGOUVAA4AAwk8plcqihwAElg0wiUlOkOiUEgQvgcFhsKhkIhUQiUUnccj0gn0jmMagUlowAMNOpEfkMNkkmlEqrctjQmAAjAA5AA2sssHcbnkdq" + "1Ln1QtVSjQAAEBA==>▲</a></solidline><br>- attend(class: Course)<r><a 2;e64=gA8ABjAA+AECMwAM8DABvABshoAOQAEAAHAAGEWjEajMGNoA" + "MoAOgANERMgAOcHAAvAEJhcEh0Qh0Tg0CmkqMMFlUuhkxiMTisXjNCjk6EwAEYAHIAG1MjY7lUsnkwh8/nUClk5gwAAEBA==>▲</a><br>- sleep()",vtMissing,vtMissing); var_Element2->PutID("Student"); var_Element2->PutY(-64); var_Element2->PutCaptionSingleLine(EXSURFACELib::exCaptionBreakWrap); EXSURFACELib::ILinkPtr var_Link = spSurface1->GetLinks()->Add(spSurface1->GetElements()->GetItem("Account"),spSurface1->GetElements()->GetItem("Student"),vtMissing); var_Link->PutCaption(L"<fgcolor A0A0A0><solidline 808080> <c><b>Link</b></solidline><br># count: number <r><a ;exp=12992>➤</a>"); |
157 |
Expandable-caption
|
156 |
Fullfit the caption on the element's width
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); EXSURFACELib::IElementPtr var_Element = spSurface1->GetElements()->Add(_bstr_t("<solidline><b>Bank Account</b></solidline><br>+ owner: String <r><a 1;properties>+</a><br><solidline>+ balance: Currency = 0</s") + "olidline><br>+ deposit(amount: Currency)<r><a 2;methods>+</a><br>+ withdraw(amount: Currency)",vtMissing,vtMissing); var_Element->PutCaptionSingleLine(EXSURFACELib::exCaptionBreakWrap); var_Element->PutBackColor(RGB(248,248,248)); var_Element->PutAutoSize(VARIANT_FALSE); var_Element->PutWidth(194); var_Element->PutHeight(76); var_Element->PutCaptionAlign(EXSURFACELib::ContentAlignmentEnum(0x4)); |
155 |
Wrap the caption by <br> or "\r\n" sequence only
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); EXSURFACELib::IElementPtr var_Element = spSurface1->GetElements()->Add(_bstr_t("<solidline><b>Bank Account</b></solidline><br>+ owner: String <r><a 1;properties>+</a><br><solidline>+ balance: Currency = 0</s") + "olidline><br>+ deposit(amount: Currency)<r><a 2;methods>+</a><br>+ withdraw(amount: Currency)",vtMissing,vtMissing); var_Element->PutCaptionSingleLine(EXSURFACELib::exCaptionBreakWrap); var_Element->PutBackColor(RGB(248,248,248)); |
154 |
Display a custom tooltip
|
153 |
Shows the tooltip of the object moved relative to its default position
|
152 |
Rename Undo/Redo commands into the control's toolbar
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowUndoRedo(VARIANT_TRUE); spSurface1->PutToolBarFormat(L"-1,100,101,|,103,104"); spSurface1->PutToolBarCaption(100,L"<img>1</img>Acasa"); spSurface1->PutToolBarCaption(103,L"Anuleaza <img>3</img>"); spSurface1->PutToolBarCaption(104,L"<img>4</img>Reface"); spSurface1->PutToolBarToolTip(100,L"Restabileste vizualizarea la origine."); spSurface1->PutToolBarToolTip(101,L"Mareste vizualizarea."); spSurface1->PutToolBarToolTip(103,L"Anuleaza ultima actiune UI. Pentru a anula o actiune apasati Ctrl+Z."); spSurface1->PutToolBarToolTip(104,L"Inverseaza cea mai recenta operatie de anulare. Pentru a reface o actiune apasati Ctrl+Y."); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Item <b>1",long(-64),long(-48)); var_Elements->Add("Item <b>2",long(32),long(32)); spSurface1->GetLinks()->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),vtMissing); spSurface1->EndUpdate(); |
151 |
Add Undo/Redo commands to control's toolbar
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowUndoRedo(VARIANT_TRUE); spSurface1->PutToolBarFormat(L"-1,100,101,|,103,104"); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Item <b>1",long(-64),long(-48)); var_Elements->Add("Item <b>2",long(32),long(32)); spSurface1->GetLinks()->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),vtMissing); spSurface1->EndUpdate(); |
150 |
Clear Undo/Redo queue (method 2)
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowUndoRedo(VARIANT_TRUE); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Item <b>1",long(-64),long(-64)); var_Elements->Add("Item <b>2",vtMissing,vtMissing); spSurface1->GetLinks()->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),vtMissing); long c = spSurface1->GetUndoRedoQueueLength(); spSurface1->PutUndoRedoQueueLength(0); spSurface1->PutUndoRedoQueueLength(c); OutputDebugStringW( spSurface1->GetUndoListAction(vtMissing,vtMissing) ); spSurface1->EndUpdate(); |
149 |
Clear Undo/Redo queue (method 1)
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowUndoRedo(VARIANT_TRUE); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Item <b>1",long(-64),long(-64)); var_Elements->Add("Item <b>2",vtMissing,vtMissing); spSurface1->GetLinks()->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),vtMissing); spSurface1->PutAllowUndoRedo(VARIANT_TRUE); OutputDebugStringW( spSurface1->GetUndoListAction(vtMissing,vtMissing) ); spSurface1->EndUpdate(); |
148 |
Removes Redo operations
|
147 |
Removes Undo operations
|
146 |
Record the UI operations as a block of undo/redo operations
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowUndoRedo(VARIANT_TRUE); spSurface1->StartBlockUndoRedo(); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Item <b>1",long(-64),long(-64)); var_Elements->Add("Item <b>2",vtMissing,vtMissing); spSurface1->GetLinks()->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),vtMissing); spSurface1->EndBlockUndoRedo(); OutputDebugStringW( spSurface1->GetUndoListAction(vtMissing,vtMissing) ); spSurface1->EndUpdate(); |
145 |
Groups the next to current Undo/Redo Actions in a single block
|
144 |
Limits the number of entries within the Undo/Redo queue
|
143 |
Lists the Redo actions that can be performed on the surface
|
142 |
Lists the Undo actions that can be performed on the surface
|
141 |
Checks whether the Undo operation is possible
|
140 |
Call Redo by code
|
139 |
Checks whether the Undo operation is possible
|
138 |
Call Undo by code
|
137 |
Save the element's properties for Undo/Redo operations, by code
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowUndoRedo(VARIANT_TRUE); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Item <b>1",long(-64),long(-64)); var_Elements->Add("Item <b>2",vtMissing,vtMissing); spSurface1->StartBlockUndoRedo(); EXSURFACELib::ILinkPtr var_Link = spSurface1->GetLinks()->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),vtMissing); long h = var_Link->GetStartUpdateLink(); var_Link->PutColor(RGB(255,0,0)); var_Link->PutWidth(2); var_Link->PutShowDir(VARIANT_FALSE); var_Link->PutShowLinkType(EXSURFACELib::exLinkStraight); var_Link->EndUpdateLink(h); spSurface1->EndBlockUndoRedo(); spSurface1->EndUpdate(); |
136 |
No color is restored for the link when Undo/Redo operation is executed
// AddElement event - A new element has been added to the surface. void OnAddElementSurface1(LPDISPATCH Element) { // Element.ShowCheckBox = True // Element.CheckBoxAlign = 2 } /* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowUndoRedo(VARIANT_TRUE); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Check <b>1",long(-64),long(-64)); var_Elements->Add("Check <b>2",vtMissing,vtMissing)->PutChecked(EXSURFACELib::exChecked); spSurface1->StartBlockUndoRedo(); EXSURFACELib::ILinkPtr var_Link = spSurface1->GetLinks()->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),vtMissing); long h = var_Link->GetStartUpdateLink(); var_Link->PutColor(RGB(255,0,0)); var_Link->PutWidth(2); var_Link->PutShowDir(VARIANT_FALSE); var_Link->PutShowLinkType(EXSURFACELib::exLinkStraight); var_Link->EndUpdateLink(h); spSurface1->EndBlockUndoRedo(); spSurface1->EndUpdate(); |
135 |
Save the element's properties for Undo/Redo operations, by code
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowUndoRedo(VARIANT_TRUE); spSurface1->GetElements()->Add("Item <b>1",long(-64),long(-64)); spSurface1->StartBlockUndoRedo(); EXSURFACELib::IElementPtr var_Element = spSurface1->GetElements()->Add("Item <b>2",vtMissing,vtMissing); long h = var_Element->GetStartUpdateElement(); var_Element->PutBackColor(RGB(0,0,0)); var_Element->PutForeColor(RGB(255,255,255)); var_Element->PutBorderColor(RGB(255,0,0)); var_Element->EndUpdateElement(h); spSurface1->EndBlockUndoRedo(); spSurface1->EndUpdate(); |
134 |
No color is restored for the element when Undo/Redo operation is executed
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowUndoRedo(VARIANT_TRUE); spSurface1->GetElements()->Add("Item <b>1",long(-64),long(-64)); spSurface1->StartBlockUndoRedo(); EXSURFACELib::IElementPtr var_Element = spSurface1->GetElements()->Add("Item <b>2",vtMissing,vtMissing); long h = var_Element->GetStartUpdateElement(); var_Element->PutBackColor(RGB(0,0,0)); var_Element->PutForeColor(RGB(255,255,255)); var_Element->PutBorderColor(RGB(255,0,0)); var_Element->EndUpdateElement(h); spSurface1->EndBlockUndoRedo(); spSurface1->EndUpdate(); |
133 |
How can I ensure that a specified element fits the surface's visible area
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); EXSURFACELib::IPatternPtr var_Pattern = var_Elements->Add("Element A",long(-100),vtMissing)->GetPattern(); var_Pattern->PutType(EXSURFACELib::exPatternBDiagonal); var_Pattern->PutColor(RGB(224,224,224)); var_Elements->Add("Element B",long(2000),vtMissing)->EnsureVisible(); |
132 |
LayoutEndChanging(exUndo), LayoutEndChanging(exRedo) or LayoutEndChanging(exUndoRedoUpdate) notifiy your application once a Undo/Redo operation is executed (CTRL+Z, CTRL+Y) or updated
// AddElement event - A new element has been added to the surface. void OnAddElementSurface1(LPDISPATCH Element) { // Element.ShowCheckBox = True // Element.CheckBoxAlign = 2 } // LayoutEndChanging event - Notifies your application once the control's layout has been changed. void OnLayoutEndChangingSurface1(long Operation) { /* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"LayoutEndChanging" ); OutputDebugStringW( L"Operation" ); } EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowUndoRedo(VARIANT_TRUE); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Check <b>1",long(-64),long(-64)); var_Elements->Add("Check <b>2",vtMissing,vtMissing)->PutChecked(EXSURFACELib::exChecked); spSurface1->GetLinks()->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),vtMissing); spSurface1->EndUpdate(); |
131 |
Turn on the Undo/Redo feature
|
130 |
ImageSize property on 32 (specifies the size of control' icons/images/check-boxes/radio-buttons)
|
129 |
ImageSize property on 16 (default) (specifies the size of control' icons)
|
128 |
We want to have option to start/end connectors at the middle of each side of the elements
|
127 |
How can I determine the position the user clicks within the element's boundaries (Click event)
// Click event - Occurs when the user presses and then releases the left mouse button over the control. void OnClickSurface1() { /* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); ObjectPtr e = ((ObjectPtr)(spSurface1->GetElementFromPoint(-1,-1))); _bstr_t X = -1; _bstr_t Y = -1; spSurface1->PointToPosition(X,Y); OutputDebugStringW( L"e" ); OutputDebugStringW( L"X" ); OutputDebugStringW( L"Y" ); } EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Element 1",vtMissing,vtMissing); var_Elements->Add("Element 2",long(128),long(64)); spSurface1->FitToClient(); spSurface1->EndUpdate(); |
126 |
How can I determine the position the user clicks within the element's boundaries (MouseMove event)
// MouseMove event - Occurs when the user moves the mouse. void OnMouseMoveSurface1(short Button,short Shift,long X,long Y) { /* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); ObjectPtr e = ((ObjectPtr)(spSurface1->GetElementFromPoint(X,Y))); spSurface1->PointToPosition(X,Y); OutputDebugStringW( L"e" ); OutputDebugStringW( L"X" ); OutputDebugStringW( L"Y" ); } EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Element 1",vtMissing,vtMissing); var_Elements->Add("Element 2",long(128),long(64)); spSurface1->FitToClient(); spSurface1->EndUpdate(); |
125 |
How can I convert the screen position (mouse) to surface position
// MouseMove event - Occurs when the user moves the mouse. void OnMouseMoveSurface1(short Button,short Shift,long X,long Y) { OutputDebugStringW( L"Point " ); /* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); OutputDebugStringW( L"X" ); OutputDebugStringW( L"Y" ); spSurface1->PointToPosition(X,Y); OutputDebugStringW( L"Position " ); OutputDebugStringW( L"X" ); OutputDebugStringW( L"Y" ); } EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Element <sha ;;0>1",vtMissing,vtMissing); var_Elements->Add("Element <sha ;;0>2",long(164),long(64)); var_Elements->Add("Element <sha ;;0>3",long(0),long(132)); EXSURFACELib::ILinksPtr var_Links = spSurface1->GetLinks(); var_Links->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),vtMissing); var_Links->Add(spSurface1->GetElements()->GetItem(long(3)),spSurface1->GetElements()->GetItem(long(2)),vtMissing); var_Links->Add(spSurface1->GetElements()->GetItem(long(3)),spSurface1->GetElements()->GetItem(long(1)),vtMissing); spSurface1->FitToClient(); spSurface1->PutAxisStyle(EXSURFACELib::LinesStyleEnum(0xc0)); spSurface1->PutAxisColor(RGB(128,128,128)); spSurface1->EndUpdate(); |
124 |
Is is possible to show just the positive coordinates
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutCoord(EXSURFACELib::CoordEnum(EXSURFACELib::exAllowPositiveOnly | EXSURFACELib::exCartesian)); spSurface1->PutAxisColor(RGB(128,128,128)); spSurface1->PutAxisStyle(EXSURFACELib::LinesStyleEnum(EXSURFACELib::exLinesThick | EXSURFACELib::exLinesDot4)); spSurface1->PutShowLinks(EXSURFACELib::exShowLinks); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Element <sha ;;0>1",vtMissing,vtMissing); var_Elements->Add("Element <sha ;;0>2",long(164),long(64)); var_Elements->Add("Element <sha ;;0>3",long(0),long(132)); EXSURFACELib::ILinksPtr var_Links = spSurface1->GetLinks(); var_Links->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),vtMissing); var_Links->Add(spSurface1->GetElements()->GetItem(long(3)),spSurface1->GetElements()->GetItem(long(2)),vtMissing); spSurface1->FitToClient(); spSurface1->EndUpdate(); |
123 |
Cartesian coordinates (positive coordinates are shown top-right to the origin)
|
122 |
Default coordinates (positive coordinates are shown bottom-right to the origin)
|
121 |
Is it possible to customize the path of the links orthogonally similar with Microsoft Visio tool
|
120 |
Does your control supports OLE Drag and Drop
|
119 |
Is it possible to disable customizing the path of a specified link
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowLinkControlPoint(EXSURFACELib::LinkControlPointEnum(0xffffff80 | EXSURFACELib::exAllowChangeTo | EXSURFACELib::exAllowChangeFrom | EXSURFACELib::exOrthoArrange | EXSURFACELib::exMiddleControlPoint | EXSURFACELib::exControlPoint | EXSURFACELib::exEndControlPoint | EXSURFACELib::exStartControlPoint)); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Element <sha ;;0>A",vtMissing,vtMissing); var_Elements->Add("Element <sha ;;0>B",long(164),long(64)); var_Elements->Add("Element <sha ;;0>B",long(0),long(132)); EXSURFACELib::ILinksPtr var_Links = spSurface1->GetLinks(); var_Links->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),vtMissing)->PutCustomPath("0.5,0.25,0.5,.75"); var_Links->Add(spSurface1->GetElements()->GetItem(long(3)),spSurface1->GetElements()->GetItem(long(2)),vtMissing)->PutCustomPath("0.5,0.25,0.5,.75"); EXSURFACELib::ILinkPtr var_Link = var_Links->Add(spSurface1->GetElements()->GetItem(long(3)),spSurface1->GetElements()->GetItem(long(1)),vtMissing); var_Link->PutShowLinkType(EXSURFACELib::ShowLinkTypeEnum(EXSURFACELib::exLinkStraight | EXSURFACELib::exLinkDirect)); var_Link->PutStartPos(EXSURFACELib::LeftAlignment); var_Link->PutColor(RGB(128,128,128)); var_Link->PutAllowControlPoint(EXSURFACELib::exNoControlPoint); spSurface1->PutZoom(200); spSurface1->FitToClient(); spSurface1->EndUpdate(); |
118 |
How do I let user customizes the link's path
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowLinkControlPoint(EXSURFACELib::LinkControlPointEnum(0xffffff80 | EXSURFACELib::exAllowChangeTo | EXSURFACELib::exAllowChangeFrom | EXSURFACELib::exOrthoArrange | EXSURFACELib::exMiddleControlPoint | EXSURFACELib::exControlPoint | EXSURFACELib::exEndControlPoint | EXSURFACELib::exStartControlPoint)); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Element <sha ;;0>A",vtMissing,vtMissing); var_Elements->Add("Element <sha ;;0>B",long(164),long(64)); var_Elements->Add("Element <sha ;;0>B",long(0),long(132)); EXSURFACELib::ILinksPtr var_Links = spSurface1->GetLinks(); var_Links->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),vtMissing)->PutCustomPath("0.5,0.25,0.5,.75"); var_Links->Add(spSurface1->GetElements()->GetItem(long(3)),spSurface1->GetElements()->GetItem(long(2)),vtMissing)->PutCustomPath("0.5,0.25,0.5,.75"); EXSURFACELib::ILinkPtr var_Link = var_Links->Add(spSurface1->GetElements()->GetItem(long(3)),spSurface1->GetElements()->GetItem(long(1)),vtMissing); var_Link->PutShowLinkType(EXSURFACELib::ShowLinkTypeEnum(EXSURFACELib::exLinkStraight | EXSURFACELib::exLinkDirect)); var_Link->PutStartPos(EXSURFACELib::LeftAlignment); spSurface1->PutZoom(200); spSurface1->FitToClient(); spSurface1->EndUpdate(); |
117 |
How can I generate a picture/image/graph from my diagram
|
116 |
How can I generate a picture/image/graph from my diagram
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Element A",vtMissing,vtMissing)->PutID("A"); var_Elements->Add("Element B",vtMissing,vtMissing)->PutID("B"); var_Elements->Add("Element C",vtMissing,vtMissing)->PutID("C"); var_Elements->Add("Element D",vtMissing,vtMissing)->PutID("D"); var_Elements->Add("Element E",vtMissing,vtMissing)->PutID("E"); var_Elements->Add("Element E",vtMissing,vtMissing)->PutID("F"); EXSURFACELib::ILinksPtr var_Links = spSurface1->GetLinks(); var_Links->Add(spSurface1->GetElements()->GetItem("A"),spSurface1->GetElements()->GetItem("B"),vtMissing); var_Links->Add(spSurface1->GetElements()->GetItem("A"),spSurface1->GetElements()->GetItem("C"),vtMissing); var_Links->Add(spSurface1->GetElements()->GetItem("B"),spSurface1->GetElements()->GetItem("D"),vtMissing); var_Links->Add(spSurface1->GetElements()->GetItem("B"),spSurface1->GetElements()->GetItem("C"),vtMissing); var_Links->Add(spSurface1->GetElements()->GetItem("A"),spSurface1->GetElements()->GetItem("E"),vtMissing); var_Links->Add(spSurface1->GetElements()->GetItem("A"),spSurface1->GetElements()->GetItem("F"),vtMissing); spSurface1->PutDefArrange(EXSURFACELib::exDefArrangeCompact,VARIANT_FALSE); spSurface1->Arrange(vtMissing); /* Includes the definition for CreateObject function like follows: #include <comdef.h> IUnknownPtr CreateObject( BSTR Object ) { IUnknownPtr spResult; spResult.CreateInstance( Object ); return spResult; }; */ /* Copy and paste the following directives to your header file as it defines the namespace 'EXPRINTLib' for the library: 'ExPrint 1.0 Control Library' #import <ExPrint.dll> using namespace EXPRINTLib; */ EXPRINTLib::IExPrintPtr var_Print = ::CreateObject(L"Exontrol.Print"); var_Print->PutPrintExt(((EXSURFACELib::ISurfacePtr)(spSurface1))); var_Print->CopyTo(L"c:/temp/xtest.jpg"); OutputDebugStringW( L"!!!check the file c:/temp/xtest.jpg!!!" ); |
115 |
How can I print the component
|
114 |
How can I show direct-links
|
113 |
How can I show straight-links
|
112 |
How can I show round-links
|
111 |
I've tried to insert a "<br>" in the Caption property text and it just ignores it
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); EXSURFACELib::IElementPtr var_Element = var_Elements->Add("caption",vtMissing,vtMissing); var_Element->PutCaptionSingleLine(EXSURFACELib::exCaptionWordWrap); var_Element->PutCaption(L"first caption<br>second caption<br>third caption"); spSurface1->EndUpdate(); |
110 |
How do I align the extra-caption
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); EXSURFACELib::IElementPtr var_Element = var_Elements->Add("caption",vtMissing,vtMissing); var_Element->PutAutoSize(VARIANT_FALSE); var_Element->PutWidth(128); var_Element->PutHeight(64); var_Element->PutExtraCaption(L"extra-caption"); var_Element->PutExtraCaptionAlign(EXSURFACELib::exBottomRight); spSurface1->EndUpdate(); |
109 |
How can I add an extra caption
|
108 |
I am using the reserve-neighbors feature, the question is how to shift left/right the neighbors instead of up/down
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowMoveNeighbors(EXSURFACELib::exMoveNeighborsHorizontally); spSurface1->PutDefArrange(EXSURFACELib::exDefArrangeDir,long(1)); spSurface1->PutAllowInsertObject(VARIANT_FALSE); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Element <sha ;;0>A",vtMissing,vtMissing); var_Elements->Add("Element <sha ;;0>B ( move it )",long(16),long(32)); var_Elements->Add("Element <sha ;;0>C",long(128),long(0)); spSurface1->EndUpdate(); |
107 |
I am using the reserve-neighbors feature, the question is if possible to specify the distance between neighbors
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); spSurface1->BeginUpdate(); spSurface1->PutAllowMoveNeighbors(EXSURFACELib::exMoveNeighborsVertically); spSurface1->PutDefArrange(EXSURFACELib::exDefArrangeDX,long(0)); spSurface1->PutDefArrange(EXSURFACELib::exDefArrangeDY,long(0)); spSurface1->PutAllowInsertObject(VARIANT_FALSE); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Element <sha ;;0>A",vtMissing,vtMissing); var_Elements->Add("Element <sha ;;0>B ( move it )",long(0),long(32)); var_Elements->Add("Element <sha ;;0>C",long(0),long(64)); spSurface1->EndUpdate(); |
106 |
How do I enable the reserve-neighbors feature
|
105 |
I've noticed that recently, the elements get compacted once the Arrange method is performed. How can I prevent that
|
104 |
Is it possible to add a link to show from bottom/down to top/up, rather that right to left (method-2)
// AddLink event - A new link has been added to the links collection. void OnAddLinkSurface1(LPDISPATCH Link) { } /* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Element <sha ;;0>A",vtMissing,vtMissing); var_Elements->Add("Element <sha ;;0>B",long(48),long(48)); EXSURFACELib::ILinksPtr var_Links = spSurface1->GetLinks(); var_Links->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),vtMissing); |
103 |
Is it possible to add a link to show from bottom/down to top/up, rather that right to left (method-1)
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Element <sha ;;0>A",vtMissing,vtMissing); var_Elements->Add("Element <sha ;;0>B",long(48),long(48)); EXSURFACELib::ILinksPtr var_Links = spSurface1->GetLinks(); EXSURFACELib::ILinkPtr var_Link = var_Links->Add(spSurface1->GetElements()->GetItem(long(1)),spSurface1->GetElements()->GetItem(long(2)),vtMissing); var_Link->PutStartPos(EXSURFACELib::DownAlignment); var_Link->PutEndPos(EXSURFACELib::UpAlignment); |
102 |
How do I enable the cross link support ( mixed )
|
101 |
How do I enable the cross link support ( triangular )
|