13:
Can I display items one below to other

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

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

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

	oToolBarCRD := XbpActiveXControl():new( oForm:drawingArea )
	oToolBarCRD:CLSID  := "Exontrol.ToolBar.CRD.1" /*{DD586AE6-F2A0-4308-8F34-8016B16F000E}*/
	oToolBarCRD:create(,, {10,60},{610,370} )

		oToolBarCRD:Format := "(1/2):64,(3/4):64"
		oToolBarCRD:Item(1):Caption := "Item <off 4><b>A"
		oToolBarCRD:Item(2):Caption := "Item <off 4><b>B"
		oToolBarCRD:Item(3):Caption := "Item <off 4><b>C"
		oToolBarCRD:Item(4):Caption := "Item <off 4><b>D"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
12:
How can I add a separator item

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

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

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

	oToolBarCRD := XbpActiveXControl():new( oForm:drawingArea )
	oToolBarCRD:CLSID  := "Exontrol.ToolBar.CRD.1" /*{DD586AE6-F2A0-4308-8F34-8016B16F000E}*/
	oToolBarCRD:create(,, {10,60},{610,370} )

		oToolBarCRD:Format := "1,2,-1,3,4"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
11:
Is it possible to disable an item

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

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

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

	oToolBarCRD := XbpActiveXControl():new( oForm:drawingArea )
	oToolBarCRD:CLSID  := "Exontrol.ToolBar.CRD.1" /*{DD586AE6-F2A0-4308-8F34-8016B16F000E}*/
	oToolBarCRD:create(,, {10,60},{610,370} )

		oToolBarCRD:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oToolBarCRD:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oToolBarCRD:Format := "1,2,3"
		oToolBarCRD:Item(1):Caption := "<img>1</img>"
		oToolBarCRD:Item(2):Caption := "<img>2</img>"
		oItem := oToolBarCRD:Item(3)
			oItem:Caption := "<img>3</img>Disabled"
			oItem:Enabled := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
10:
Is it possible to change the item's caption/image when user hovers the cursor

PROCEDURE OnMouseIn(oToolBarCRD,ID)
	oToolBarCRD:Item(ID):Caption := "hover"
RETURN

PROCEDURE OnMouseOut(oToolBarCRD,ID)
	oToolBarCRD:Item(ID):Caption := Transform(ID,"")
RETURN

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

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

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

	oToolBarCRD := XbpActiveXControl():new( oForm:drawingArea )
	oToolBarCRD:CLSID  := "Exontrol.ToolBar.CRD.1" /*{DD586AE6-F2A0-4308-8F34-8016B16F000E}*/
	oToolBarCRD:create(,, {10,60},{610,370} )

		oToolBarCRD:MouseIn := {|ID| OnMouseIn(oToolBarCRD,ID)} /*Occurs when the mouse enters the part.*/
		oToolBarCRD:MouseOut := {|ID| OnMouseOut(oToolBarCRD,ID)} /*Occurs when the mouse exists the part.*/

		oToolBarCRD:Format := "1,2,3,4"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
9:
Does your control support tooltip for items

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

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

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

	oToolBarCRD := XbpActiveXControl():new( oForm:drawingArea )
	oToolBarCRD:CLSID  := "Exontrol.ToolBar.CRD.1" /*{DD586AE6-F2A0-4308-8F34-8016B16F000E}*/
	oToolBarCRD:create(,, {10,60},{610,370} )

		oToolBarCRD:Format := "(1/2),3"
		oItem := oToolBarCRD:Item(1)
			oItem:Caption := "Item <b>1"
			oItem:ToolTip := "This is a bit of text that's shown when cursor hovers the item"
		oToolBarCRD:Item(2):Caption := "Item <b>2"
		oToolBarCRD:Item(3):Caption := "Item <b>3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
8:
Is it possible to add an anchor element, similar to a link into a webpage

PROCEDURE OnAnchorClick(oToolBarCRD,AnchorID,Options)
	DevOut( Transform(AnchorID,"") )
RETURN

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

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

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

	oToolBarCRD := XbpActiveXControl():new( oForm:drawingArea )
	oToolBarCRD:CLSID  := "Exontrol.ToolBar.CRD.1" /*{DD586AE6-F2A0-4308-8F34-8016B16F000E}*/
	oToolBarCRD:create(,, {10,60},{610,370} )

		oToolBarCRD:AnchorClick := {|AnchorID,Options| OnAnchorClick(oToolBarCRD,AnchorID,Options)} /*Occurs when an anchor element is clicked.*/

		oToolBarCRD:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oToolBarCRD:Format := "" + CHR(34) + "<a a1>link</a>" + CHR(34) + ":32,1,2,3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
7:
How can I change the background of the hovering item

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

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

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

	oToolBarCRD := XbpActiveXControl():new( oForm:drawingArea )
	oToolBarCRD:CLSID  := "Exontrol.ToolBar.CRD.1" /*{DD586AE6-F2A0-4308-8F34-8016B16F000E}*/
	oToolBarCRD:create(,, {10,60},{610,370} )

		oToolBarCRD:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oToolBarCRD:SetProperty("Background",155/*exToolBarButtonHotBackColor*/,0x1000000)
		oToolBarCRD:Format := "1,2,3,4"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
6:
Can I display an item aligned to the right

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

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

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

	oToolBarCRD := XbpActiveXControl():new( oForm:drawingArea )
	oToolBarCRD:CLSID  := "Exontrol.ToolBar.CRD.1" /*{DD586AE6-F2A0-4308-8F34-8016B16F000E}*/
	oToolBarCRD:create(,, {10,60},{610,370} )

		oToolBarCRD:Format := "1,2,|,3:64"
		oToolBarCRD:Item(3):Caption := "< <b>right</b> >"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
5:
Can I display pictures in the toolbar

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

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

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

	oToolBarCRD := XbpActiveXControl():new( oForm:drawingArea )
	oToolBarCRD:CLSID  := "Exontrol.ToolBar.CRD.1" /*{DD586AE6-F2A0-4308-8F34-8016B16F000E}*/
	oToolBarCRD:create(,, {10,60},{610,370} )

		oToolBarCRD:SetProperty("HTMLPicture","pic1","c:\exontrol\images\card.png")
		oToolBarCRD:SetProperty("HTMLPicture","pic2","c:\exontrol\images\diary.png")
		oToolBarCRD:Format := "1,2,3"
		oToolBarCRD:Item(1):Caption := "<img>pic1:48</img>"
		oToolBarCRD:Item(2):Caption := "<img>pic2:30</img>"
		oToolBarCRD:Item(3):Caption := "<img>pic1:24</img> Picture"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
4:
Can I display icons in the toolbar

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

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

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

	oToolBarCRD := XbpActiveXControl():new( oForm:drawingArea )
	oToolBarCRD:CLSID  := "Exontrol.ToolBar.CRD.1" /*{DD586AE6-F2A0-4308-8F34-8016B16F000E}*/
	oToolBarCRD:create(,, {10,60},{610,370} )

		oToolBarCRD:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oToolBarCRD:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oToolBarCRD:Format := "1,2,3"
		oToolBarCRD:Item(1):Caption := "<img>1</img>"
		oToolBarCRD:Item(2):Caption := "<img>2</img>"
		oToolBarCRD:Item(3):Caption := "<img>3</img>Icon"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
3:
How can I get ride of the top-bottom lines

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

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

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

	oToolBarCRD := XbpActiveXControl():new( oForm:drawingArea )
	oToolBarCRD:CLSID  := "Exontrol.ToolBar.CRD.1" /*{DD586AE6-F2A0-4308-8F34-8016B16F000E}*/
	oToolBarCRD:create(,, {10,60},{610,370} )

		oToolBarCRD:Appearance := 4/*Etched*/
		oToolBarCRD:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oToolBarCRD:Format := "1,-1,2"
		oToolBarCRD:Item(1):Caption := "Exit"
		oToolBarCRD:Item(2):Caption := "Item <b>A\r\nItem <b>A#1\r\nItem <b>B#2\r\nItem <b>C#3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
2:
How can I display a drop-down panel

PROCEDURE OnSelect(oToolBarCRD,ID,SelectedID)
	DevOut( "Select" )
	DevOut( Transform(SelectedID,"") )
RETURN

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

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

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

	oToolBarCRD := XbpActiveXControl():new( oForm:drawingArea )
	oToolBarCRD:CLSID  := "Exontrol.ToolBar.CRD.1" /*{DD586AE6-F2A0-4308-8F34-8016B16F000E}*/
	oToolBarCRD:create(,, {10,60},{610,370} )

		oToolBarCRD:Select := {|ID,SelectedID| OnSelect(oToolBarCRD,ID,SelectedID)} /*Notifies once the user clicks the item.*/

		oToolBarCRD:Format := "1,-1,2"
		oToolBarCRD:Item(1):Caption := "Exit"
		oToolBarCRD:Item(2):Caption := "Item <b>A\r\nItem <b>A#1\r\nItem <b>B#2\r\nItem <b>C#3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
1:
How can I add / display items with the toolbar

PROCEDURE OnSelect(oToolBarCRD,ID,SelectedID)
	DevOut( "Select" )
	DevOut( oToolBarCRD:Item(ID):Caption() )
RETURN

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

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

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

	oToolBarCRD := XbpActiveXControl():new( oForm:drawingArea )
	oToolBarCRD:CLSID  := "Exontrol.ToolBar.CRD.1" /*{DD586AE6-F2A0-4308-8F34-8016B16F000E}*/
	oToolBarCRD:create(,, {10,60},{610,370} )

		oToolBarCRD:Select := {|ID,SelectedID| OnSelect(oToolBarCRD,ID,SelectedID)} /*Notifies once the user clicks the item.*/

		oToolBarCRD:Format := "1,-1,2,3"
		oToolBarCRD:Item(1):Caption := "Exit"
		oToolBarCRD:Item(2):Caption := "Item <b>A"
		oToolBarCRD:Item(3):Caption := "Item <b>B"

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