21
How do I specify that an object should be moved not resized
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSplitBar

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSplitBar := XbpActiveXControl():new( oForm:drawingArea )
	oSplitBar:CLSID  := "Exontrol.SplitBar.1" /*{9F28FDED-5EBC-4E9A-A596-C3813C966A0C}*/
	oSplitBar:create(,, {10,60},{610,370} )

		oSplitBar:ObjectsLT := "Command1"
		oSplitBar:ObjectsRB := "Command1"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
20
I've noticed some margins that are not painted. How can I prevent/remove that
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSplitBar

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSplitBar := XbpActiveXControl():new( oForm:drawingArea )
	oSplitBar:CLSID  := "Exontrol.SplitBar.1" /*{9F28FDED-5EBC-4E9A-A596-C3813C966A0C}*/
	oSplitBar:create(,, {10,60},{610,370} )

		oSplitBar:BorderWidth := 0
		oSplitBar:BorderHeight := 0
		oSplitBar:SetProperty("SplitBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
19
How can I change the shape of the cursor
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSplitBar

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSplitBar := XbpActiveXControl():new( oForm:drawingArea )
	oSplitBar:CLSID  := "Exontrol.SplitBar.1" /*{9F28FDED-5EBC-4E9A-A596-C3813C966A0C}*/
	oSplitBar:create(,, {10,60},{610,370} )

		oSplitBar:Cursor := "exCross"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
18
How can I display a tooltip when cursor hovers the split bar (pictures)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSplitBar

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSplitBar := XbpActiveXControl():new( oForm:drawingArea )
	oSplitBar:CLSID  := "Exontrol.SplitBar.1" /*{9F28FDED-5EBC-4E9A-A596-C3813C966A0C}*/
	oSplitBar:create(,, {10,60},{610,370} )

		oSplitBar:SetProperty("HTMLPicture","pic1","c:\exontrol\images\zipdisk.gif")
		oSplitBar:ToolTipText := "<img>pic1</img>This is a bit of text that's displayed when the control hovers the split bar."

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
17
How can I display a tooltip when cursor hovers the split bar (images)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSplitBar

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSplitBar := XbpActiveXControl():new( oForm:drawingArea )
	oSplitBar:CLSID  := "Exontrol.SplitBar.1" /*{9F28FDED-5EBC-4E9A-A596-C3813C966A0C}*/
	oSplitBar:create(,, {10,60},{610,370} )

		oSplitBar:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oSplitBar:ToolTipText := "<img>1</img>This is a bit of text that's displayed when the control hovers the split bar."

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
16
Is it possible to move the associated objects once the user drags the split bar, not just when it ends
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSplitBar

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSplitBar := XbpActiveXControl():new( oForm:drawingArea )
	oSplitBar:CLSID  := "Exontrol.SplitBar.1" /*{9F28FDED-5EBC-4E9A-A596-C3813C966A0C}*/
	oSplitBar:create(,, {10,60},{610,370} )

		oSplitBar:ObjectsLT := "Command1"
		oSplitBar:ObjectsRB := "Command2"
		oSplitBar:MoveOnDrop := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
15
How do I know what events your control supports
PROCEDURE OnEvent(oSplitBar,EventID)
	DevOut( Transform(oSplitBar:EventParam(-2),"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSplitBar

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSplitBar := XbpActiveXControl():new( oForm:drawingArea )
	oSplitBar:CLSID  := "Exontrol.SplitBar.1" /*{9F28FDED-5EBC-4E9A-A596-C3813C966A0C}*/
	oSplitBar:create(,, {10,60},{610,370} )

		oSplitBar:Event := {|EventID| OnEvent(oSplitBar,EventID)} /*Notifies the application once the control fires an event.*/


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
14
Is it possible to get notified once the user moves the split bar
PROCEDURE OnDrag(oSplitBar,Position)
	DevOut( "New Position" )
	DevOut( Transform(Position,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSplitBar

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSplitBar := XbpActiveXControl():new( oForm:drawingArea )
	oSplitBar:CLSID  := "Exontrol.SplitBar.1" /*{9F28FDED-5EBC-4E9A-A596-C3813C966A0C}*/
	oSplitBar:create(,, {10,60},{610,370} )

		oSplitBar:Drag := {|Position| OnDrag(oSplitBar,Position)} /*Notifies that the user drags the split bar.*/


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
13
How do I get notified once the user drop the split bar to a new position
PROCEDURE OnDragEnd(oSplitBar,Position,Cancel)
	DevOut( "New Position" )
	DevOut( Transform(Position,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSplitBar

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSplitBar := XbpActiveXControl():new( oForm:drawingArea )
	oSplitBar:CLSID  := "Exontrol.SplitBar.1" /*{9F28FDED-5EBC-4E9A-A596-C3813C966A0C}*/
	oSplitBar:create(,, {10,60},{610,370} )

		oSplitBar:DragEnd := {|Position,Cancel| OnDragEnd(oSplitBar,Position,Cancel)} /*Occurs once the user ends dragging the split bar.*/


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
12
How do I programmatically move the split bar, to the right/bottom most position
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSplitBar

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSplitBar := XbpActiveXControl():new( oForm:drawingArea )
	oSplitBar:CLSID  := "Exontrol.SplitBar.1" /*{9F28FDED-5EBC-4E9A-A596-C3813C966A0C}*/
	oSplitBar:create(,, {10,60},{610,370} )

		oSplitBar:ObjectsLT := "Command1"
		oSplitBar:ObjectsRB := "Command2"
		oSplitBar:MoveTo(oSplitBar:Max())

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
11
How do I programmatically move the split bar, to the left/top most position
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSplitBar

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSplitBar := XbpActiveXControl():new( oForm:drawingArea )
	oSplitBar:CLSID  := "Exontrol.SplitBar.1" /*{9F28FDED-5EBC-4E9A-A596-C3813C966A0C}*/
	oSplitBar:create(,, {10,60},{610,370} )

		oSplitBar:ObjectsLT := "Command1"
		oSplitBar:ObjectsRB := "Command2"
		oSplitBar:MoveTo(oSplitBar:Min())

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
10
How do I programmatically move the split bar
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSplitBar

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSplitBar := XbpActiveXControl():new( oForm:drawingArea )
	oSplitBar:CLSID  := "Exontrol.SplitBar.1" /*{9F28FDED-5EBC-4E9A-A596-C3813C966A0C}*/
	oSplitBar:create(,, {10,60},{610,370} )

		oSplitBar:ObjectsLT := "Command1"
		oSplitBar:ObjectsRB := "Command2"
		oSplitBar:MoveTo(-10)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
9
I've noticed that the objects are hidden, when the split bar is closed to the limit. Is it possible to prevent that
PROCEDURE OnShow(oSplitBar,Object,Visible)
	DevOut( Transform(Object,"") )
	DevOut( Transform(Visible,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSplitBar

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSplitBar := XbpActiveXControl():new( oForm:drawingArea )
	oSplitBar:CLSID  := "Exontrol.SplitBar.1" /*{9F28FDED-5EBC-4E9A-A596-C3813C966A0C}*/
	oSplitBar:create(,, {10,60},{610,370} )

		oSplitBar:Show := {|Object,Visible| OnShow(oSplitBar,Object,Visible)} /*Occurs when an object requires to be shown or hidden.*/

		oSplitBar:ObjectsLT := "Command1"
		oSplitBar:ObjectsRB := "Command2"
		oSplitBar:HideOnLimit := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
8
How can I specify the limit to move the splitbar (hard coded value)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSplitBar

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSplitBar := XbpActiveXControl():new( oForm:drawingArea )
	oSplitBar:CLSID  := "Exontrol.SplitBar.1" /*{9F28FDED-5EBC-4E9A-A596-C3813C966A0C}*/
	oSplitBar:create(,, {10,60},{610,370} )

		oSplitBar:LimitLT := "32D"
		oSplitBar:LimitRB := "32D"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
7
How can I specify the limit to move the splitbar (percent)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSplitBar

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSplitBar := XbpActiveXControl():new( oForm:drawingArea )
	oSplitBar:CLSID  := "Exontrol.SplitBar.1" /*{9F28FDED-5EBC-4E9A-A596-C3813C966A0C}*/
	oSplitBar:create(,, {10,60},{610,370} )

		oSplitBar:LimitLT := "50%"
		oSplitBar:LimitRB := "50%"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
6
How do I change the split bar's visual appearance using your EBN files (BASE64)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSplitBar

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSplitBar := XbpActiveXControl():new( oForm:drawingArea )
	oSplitBar:CLSID  := "Exontrol.SplitBar.1" /*{9F28FDED-5EBC-4E9A-A596-C3813C966A0C}*/
	oSplitBar:create(,, {10,60},{610,370} )

		oSplitBar:BeginUpdate()
		oSplitBar:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oSplitBar:VisualAppearance():Add(1,"gBFLBCJwBAEHhEJAAEhABV0GACAADACAxSDEMQBQKAAzQFAYbhgHCGAAGUYBRgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQxHJEExZCKLACkKKwMgkEYfTLGUxQGAsXBgEoWRjkAYJADYBIJDCME7yHBJDSdGaYIRBGCZbiGOYxQjKMqwJJUfBLEAZKLnGRIbpOA5VSBVcT1VZlPTBHqxaxhED6SjaOJqRpcERTeJobT1FgWRpqUYRSwMMJqWjCNhABKsBgdO4AKpffIwAxNf4XSBIAIQSSBUjGOg6TiMWB4JRqOxCEzpUZDNBIUQTRoAJrgOCAYhcZJVXhAeTbXibZZ8RzgCj4Lg+AQ5cLHbxyPJHZxlHadZ7nOYPThXFMLBImudA7MEOQjiuFh1ngDQ+C6V4Thw/Z4B0eRnleMJXm6cp8DoHhzD+MZ0jWe52EkP4lC+cZNn4f5fkKFZ6BIXYSjoBgciCBxmAEP4gkgNgOgMIAXGQb4EkUWBVlk" +;
		"O5hggPgaD+IYDj2WQTmICBUFWBZhhgbgOgcXYRC4KoCAcJxkieC5iGgOgvCmXYYjGdwtF+F5tnwOojkidgBgDGpCEIfRemGLZxhGRBnk2dR3l4CQWEgdAeCGJZpHUXxZD2T4Sl2ZptlyEZdkkZZLHMXwXEoXhyFuY5JkWCIiCcFZHDwHRTi0UQABAECAg")
		oSplitBar:SetProperty("SplitBackColor",0x1000000)
		oSplitBar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
5
How do I change the split bar's visual appearance using your EBN files (file)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSplitBar

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSplitBar := XbpActiveXControl():new( oForm:drawingArea )
	oSplitBar:CLSID  := "Exontrol.SplitBar.1" /*{9F28FDED-5EBC-4E9A-A596-C3813C966A0C}*/
	oSplitBar:create(,, {10,60},{610,370} )

		oSplitBar:BeginUpdate()
		oSplitBar:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oSplitBar:VisualAppearance():Add(1,"C:\Program Files\Exontrol\ExSplitBar\Sample\EBN\vthumb.ebn")
		oSplitBar:SetProperty("SplitBackColor",0x1000000)
		oSplitBar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
4
How do I specify the objects to be resized to left/top or right/bottom side of the split bar (method runtime)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSplitBar

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSplitBar := XbpActiveXControl():new( oForm:drawingArea )
	oSplitBar:CLSID  := "Exontrol.SplitBar.1" /*{9F28FDED-5EBC-4E9A-A596-C3813C966A0C}*/
	oSplitBar:create(,, {10,60},{610,370} )

		oSplitBar:AddObjectLT("Command1")
		oSplitBar:AddObjectRB("Command2")
		oSplitBar:AddObjectRB("SplitBar2")
		oSplitBar:AddObjectRB("Command3")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
3
How do I specify the objects to be resized to left/top or right/bottom side of the split bar (method design)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSplitBar

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSplitBar := XbpActiveXControl():new( oForm:drawingArea )
	oSplitBar:CLSID  := "Exontrol.SplitBar.1" /*{9F28FDED-5EBC-4E9A-A596-C3813C966A0C}*/
	oSplitBar:create(,, {10,60},{610,370} )

		oSplitBar:ObjectsLT := "Command1"
		oSplitBar:ObjectsRB := "Command2,SplitBar2,Command3"
		oSplitBar:AddObjectLT("Command1")
		oSplitBar:AddObjectRB("Command2")
		oSplitBar:AddObjectRB("SplitBar2")
		oSplitBar:AddObjectRB("Command3")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
2
How do I change the split bar's color
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSplitBar

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSplitBar := XbpActiveXControl():new( oForm:drawingArea )
	oSplitBar:CLSID  := "Exontrol.SplitBar.1" /*{9F28FDED-5EBC-4E9A-A596-C3813C966A0C}*/
	oSplitBar:create(,, {10,60},{610,370} )

		oSplitBar:SetProperty("SplitBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,255,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
1
How do I change the control's background color
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSplitBar

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSplitBar := XbpActiveXControl():new( oForm:drawingArea )
	oSplitBar:CLSID  := "Exontrol.SplitBar.1" /*{9F28FDED-5EBC-4E9A-A596-C3813C966A0C}*/
	oSplitBar:create(,, {10,60},{610,370} )

		oSplitBar:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,0 } )  , .F. ))
		oSplitBar:BorderWidth := 4
		oSplitBar:BorderHeight := 4

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN