240:
Is there any function to retrieve all available shortcut keys

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SetProperty("Background",144/*exShortcutKeyBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,1 } )  , .F. ))
		oToolBar:SetProperty("Background",145/*exShortcutKeyForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oToolBar:ShortcutKeyVisible := 36/*exDisplayShortcutKeysAllAvailable+exShowShortcutKeysToggleDelayed*/
		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "3"
		oToolBar:Refresh()
		DevOut( oToolBar:ShortcutKeysInfo() )

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
239:
How can I display shortcut keys with a different size

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ShortcutKeyFormat := "`<font ;14>` + caption"
		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+SHIFT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "33+3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
238:
How can I display shortcut keys with a different font

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SetProperty("Background",144/*exShortcutKeyBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,1 } )  , .F. ))
		oToolBar:SetProperty("Background",145/*exShortcutKeyForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oToolBar:ShortcutKeyFormat := "`<font Stencil>` + caption"
		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+SHIFT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "33+3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
237:
How can I change the visual appearance of the shortcut keys (sample 3, theme)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:VisualAppearance():Add(1,"XP: Button 1 1")
		oToolBar:SetProperty("Background",143/*exShortcutKeyAppearance*/,0x1000000)
		oToolBar:SetProperty("Background",144/*exShortcutKeyBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oToolBar:SetProperty("Background",145/*exShortcutKeyForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oToolBar:ShortcutKeyVisible := 36/*exDisplayShortcutKeysAllAvailable+exShowShortcutKeysToggleDelayed*/
		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "33+3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
236:
It is possible somehow to show all available shortcut keys (sample 2)

PROCEDURE OnSelectItem(oToolBar,Itm)
	oToolBar:ShortcutKeyVisible := 36/*exDisplayShortcutKeysAllAvailable+exShowShortcutKeysToggleDelayed*/
	oToolBar:ShortcutKeyFormat := "`<c><font ;6><fgcolor 808080>` + sca + `</fgcolor></font><br><c>Key:` + keys"
	oToolBar:ShortcutKeyPressedModifers := -65536/*exModifierAny*/
	oToolBar:ShortcutKeyFormat := ""
	oToolBar:ShortcutKeyVisible := 4/*exShowShortcutKeysToggleDelayed*/
RETURN

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SelectItem := {|Itm| OnSelectItem(oToolBar,Itm)} /*Occurs when the user selects the item.*/

		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+CTRL+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+SHIFT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "33+3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
235:
It is possible somehow to show all available shortcut keys (sample 1)

PROCEDURE OnSelectItem(oToolBar,Itm)
	oToolBar:ShortcutKeyPressedModifers := -65536/*exModifierAny*/
RETURN

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SelectItem := {|Itm| OnSelectItem(oToolBar,Itm)} /*Occurs when the user selects the item.*/

		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "33+3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
234:
How can I show the shortcut keys semi-transparent

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SetProperty("Background",143/*exShortcutKeyAppearance*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oToolBar:SetProperty("Background",144/*exShortcutKeyBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,1 } )  , .F. ))
		oToolBar:SetProperty("Background",145/*exShortcutKeyForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oToolBar:ShortcutKeyVisible := 36/*exDisplayShortcutKeysAllAvailable+exShowShortcutKeysToggleDelayed*/
		oToolBar:ShortcutKeyTransparent := 50
		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "33+3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
233:
Is it possible somehow to display ID of each item

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:Debug := .T.
		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "33+3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
232:
How can I change the visual appearance of the shortcut keys (sample 2, EBN)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oToolBar:SetProperty("Background",143/*exShortcutKeyAppearance*/,0x1000000)
		oToolBar:SetProperty("Background",144/*exShortcutKeyBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oToolBar:SetProperty("Background",145/*exShortcutKeyForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oToolBar:ShortcutKeyVisible := 36/*exDisplayShortcutKeysAllAvailable+exShowShortcutKeysToggleDelayed*/
		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "33+3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
231:
How can I change the visual appearance of the shortcut keys (sample 1)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SetProperty("Background",143/*exShortcutKeyAppearance*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oToolBar:SetProperty("Background",144/*exShortcutKeyBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,1 } )  , .F. ))
		oToolBar:SetProperty("Background",145/*exShortcutKeyForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oToolBar:ShortcutKeyVisible := 36/*exDisplayShortcutKeysAllAvailable+exShowShortcutKeysToggleDelayed*/
		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "33+3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
230:
Can I show the shortcut key right after the item so it won't overlap it (sample 2)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ShortcutKeyExtPaddingH := "16 + width/2, 16 + height/2 ,16 + width/2,16 + height/2"
		oToolBar:ShortcutKeyExtPaddingV := "16 + width/2, 16 + height/2 ,16 + width/2,16 + height/2"
		oToolBar:ShortcutKeyVisible := 36/*exDisplayShortcutKeysAllAvailable+exShowShortcutKeysToggleDelayed*/
		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "33+3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
229:
Can I show the shortcut key right after the item so it won't overlap it (sample 1)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ShortcutKeyExtPaddingH := "width/2, height/2 ,width/2,height/2"
		oToolBar:ShortcutKeyExtPaddingV := "width/2, height/2 ,width/2,height/2"
		oToolBar:ShortcutKeyVisible := 36/*exDisplayShortcutKeysAllAvailable+exShowShortcutKeysToggleDelayed*/
		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "33+3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
228:
Can I specify padding for shortcut keys (sample 2)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ShortcutKeyPadding := "8,8,8,8"
		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "33+3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
227:
Can I specify padding for shortcut keys (sample 1)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ShortcutKeyPadding := "0,0,0,0"
		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "33+3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
226:
Is it possible to specify where the shortcut keys should be shown

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ShortcutKeyAlignH := 0/*exShortcutKeyUpperLeft*/
		oToolBar:ShortcutKeyAlignV := 34/*exShortcutKeyLowerRight*/
		oToolBar:ShortcutKeyVisible := 292/*exCloseShortcutKeysOnClick+exDisplayShortcutKeysAllAvailable+exShowShortcutKeysToggleDelayed*/
		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "33+3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
225:
Can I use different shortcut modifier keys for items

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT + CTRL + 1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "CTRL + SHIFT + ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "3 + 33"
			oItems:Add("")
			oItems:Add("Press <b>CTRL or ALT")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
224:
How can I disable a shortcut key

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Enabled := .F.
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "3 + 33"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
223:
I have noticed that the shortcut keys are still visible while I clicking the control. Is it possible to hide them as soon as user clicks anywhere
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ShortcutKeyVisible := 260/*exCloseShortcutKeysOnClick+exShowShortcutKeysToggleDelayed*/
		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "3 + 33"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
222:
I have a shortcut that's not currently visible, the question is if I can invoke somehow
PROCEDURE OnCheckItem(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:CheckItem := {|Itm| OnCheckItem(oToolBar,Itm)} /*Occurs when the user checks the item.*/

		oToolBar:ShortcutKeyVisible := 132/*exAllowShortcutKeysIfNotShown+exShowShortcutKeysToggleDelayed*/
		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "ALT + 4"
			oItems:Add("press ALT + 4")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
221:
Can I specify a longer delay to display shortcut once the user presses any modifer keys
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ShortcutKeyVisible := 68/*exLongerDelayShortcutKeys+exShowShortcutKeysToggleDelayed*/
		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "3+33"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
220:
How can I display extended shortcut keys

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ShortcutKeyVisible := 36/*exDisplayShortcutKeysAllAvailable+exShowShortcutKeysToggleDelayed*/
		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "333"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
219:
Is it possible to disable the shortcut keys, whithout changing the Shortcut property

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ShortcutKeyVisible := 52/*exDisplayShortcutKeysAllAvailable+exDisableShortcutKeys+exShowShortcutKeysToggleDelayed*/
		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "33+3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
218:
How can display the shortcut keys only when modifier keys are pressed

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ShortcutKeyVisible := 1/*exShowShortcutKeysPressOnly*/
		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "3+33"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
217:
How can I assign a shortcut key to an item

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:PopupAppearance := 6/*ShadowBorder*/
			oItem := oItems:Add("",2,10)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Item 1",0,20)
						oItem1:Check := .T.
						oItem1:Shortcut := "ALT+1"
					oItem2 := oItems1:Add("Item 2",0,30)
						oItem2:Check := .T.
						oItem2:Checked := .T.
						oItem2:Shortcut := "ALT+2"
					oItem3 := oItems1:Add("Item 3",2,40)
						oItem3:Shortcut := "ALT+3"
						oItems2 := oItem3:Items()
							oItem4 := oItems2:Add("Sub-Item 3.1",0,50)
								oItem4:Radio := .T.
								oItem4:Checked := .T.
								oItem4:CloseOnClick := 0/*exCloseOnClick*/
								oItem4:Shortcut := "1"
							oItem5 := oItems2:Add("Sub-Item 3.2",0,60)
								oItem5:Radio := .T.
								oItem5:CloseOnClick := 0/*exCloseOnClick*/
								oItem5:Shortcut := "2"
							oItem6 := oItems2:Add("Sub-Item 3.2",0,70)
								oItem6:Radio := .T.
								oItem6:CloseOnClick := 0/*exCloseOnClick*/
								oItem6:Shortcut := "33+3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
216:
Is it possible to insert items at a specified position during runtime, without rebuilding the entire item which hosts the items

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:Add("Item A",0,1000)
			oItems:Add("Item B",0,1001)
			oItems:Add("Item C",0,1002):Position := 0

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
215:
Is it possible to have a popup on a radio button when it is checked

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ToString := "[group=0x03][id=0](Link[id=10][typ=2][grp=100][chk=1],Move To[id=20][typ=2][grp=100][spchk][arrow=0]())"
		oItem := oToolBar:Items:Item(20)
			oItem:Items():Add("Item A",0,1000)
			oItem:Items():Add("Item B",0,1001)
			oItem:Items():Add("Item C",0,1002)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
214:
Is it possible to minimize the control, once the user clicks a button

PROCEDURE OnCheckItem(oToolBar,Itm)
	oToolBar:Items:Item(-99):Visible := oToolBar:Items:Item(-999):Checked()
	DevOut( "RequiredHeight" )
	DevOut( Transform(oToolBar:RequiredHeight(),"") )
RETURN

PROCEDURE OnUncheckItem(oToolBar,Itm)
	oToolBar:Items:Item(-99):Visible := oToolBar:Items:Item(-999):Checked()
	DevOut( "RequiredHeight" )
	DevOut( Transform(oToolBar:RequiredHeight(),"") )
RETURN

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oItem,oItem1,oItem10,oItem11,oItem12,oItem13,oItem14,oItem15,oItem16,oItem17,oItem18,oItem19,oItem2,oItem3,oItem4,oItem5,oItem6,oItem7,oItem8,oItem9,var_Item,var_Item1,var_Item2,var_Item3,var_Item4
	LOCAL oItems,oItems1,oItems10,oItems11,oItems12,oItems13,oItems2,oItems3,oItems4,oItems5,oItems6,oItems7,oItems8,oItems9
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:CheckItem := {|Itm| OnCheckItem(oToolBar,Itm)} /*Occurs when the user checks the item.*/
		oToolBar:UncheckItem := {|Itm| OnUncheckItem(oToolBar,Itm)} /*Occurs when the user unchecks the item.*/

		oItems := oToolBar:Items()
			oItems:ToString := "[id=0][group=0x03](),[id=-99][bg=0x01000000][group=0x03][itemspad=4,4,4,4]([id=9000])"
			oItem := oItems:Add("Normal",0,-999)
				oItem:Check := .T.
				oItem:Checked := oToolBar:Item(-99):Visible()
				oItem:X := "width - iwidth"
			oItems1 := oItems:Item(0):Items()
				oItems1:Add("",0,0):Padding := "8,0,0,0"
				var_Item3 := oItems1:Add("New Page")
					var_Item3:ToString := "[id=0][typ=2][chk=1][spchk=-1][show=1][grp=10][bghot=0x12000000][bgsel=0x11000000][bgselhot=0x14000000][group=0x03][tab=9000][pad=4,0,4,0][popupoffset=-4,-1]([id=0][group=0x03]([id=0][group=0x03]))"
					var_Item3:ID := 200
					var_Item3:Caption := "Page1"
					var_Item3:ShowPopupAlign := 1/*exShowPopupAlignDown*/
					oItem1 := var_Item3:Items:Item(0)
						var_Item := oItem1:Items:Add("New Group")
							var_Item:ToString := "[id=0][group=0x03][itemspad=4,4,4,18][itemsbg=0x02000000][itemsbghot=0x04000000]()"
							var_Item:Caption := "<b><font ;14>A"
							oItems2 := var_Item:Items()
								oItems2:BackgroundExt := "bottom[16,text=`<fgcolor A0A0A0><font ;8>Horizontal`,align=0x11]"
								oItem2 := oItems2:Add("",2)
									oItem2:GroupPopup := 17/*exGroupPopupEqualWidth+exGroupPopup*/
									oItem2:Caption := ""
									oItems3 := oItem2:Items()
										oItem3 := oItems3:Add("R1")
											oItem3:RadioGroup := 100
											oItem3:Radio := .T.
											oItem3:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
											oItem3:Checked := .F.
										oItem4 := oItems3:Add("R2")
											oItem4:RadioGroup := 100
											oItem4:Radio := .T.
											oItem4:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
											oItem4:Checked := .T.
										oItem5 := oItems3:Add("R3")
											oItem5:RadioGroup := 100
											oItem5:Radio := .T.
											oItem5:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
											oItem5:Checked := .F.
						var_Item1 := oItem1:Items:Add("New Group")
							var_Item1:ToString := "[id=0][group=0x03][itemspad=4,4,4,18][itemsbg=0x02000000][itemsbghot=0x04000000]()"
							var_Item1:Caption := "<b><font ;14>B"
							oItems4 := var_Item1:Items()
								oItems4:BackgroundExt := "bottom[16,text=`<fgcolor A0A0A0><font ;8>Vertical`,align=0x11]"
								oItem6 := oItems4:Add("",2)
									oItem6:GroupPopup := 289/*exGroupPopupVertical+exGroupPopupEqualHeight+exGroupPopup*/
									oItem6:Caption := ""
									oItems5 := oItem6:Items()
										oItem7 := oItems5:Add("C1")
											oItem7:Check := .T.
											oItem7:Checked := .T.
										oItem8 := oItems5:Add("C2")
											oItem8:Check := .T.
											oItem8:Checked := .F.
										oItem9 := oItems5:Add("C3")
											oItem9:Check := .T.
											oItem9:Checked := .T.
						oItem1:Items():Add("",0,0):Padding := "4,0,0,0"
						var_Item2 := oItem1:Items:Add("New Group")
							var_Item2:ToString := "[id=0][group=0x03][itemspad=4,4,4,18][itemsbg=0x02000000][itemsbghot=0x04000000]()"
							var_Item2:Caption := ""
							oItems6 := var_Item2:Items()
								oItems6:BackgroundExt := "bottom[16,text=`<fgcolor A0A0A0><font ;8>Mixt`,align=0x11]"
								oItem10 := oItems6:Add("",0)
									oItem10:AllowEdit := 1027/*exItemEditVertical+exItemEditSlider*/
									oItem10:ItemHeight := 76
									oItem10:EditBorder := 0/*exEditBorderNone*/
									oItem10:EditValue := 25
								oItem11 := oItems6:Add("",2)
									oItem11:GroupPopup := 259/*exGroupPopupVertical+exNoGroupPopupFrame+exGroupPopup*/
									oItem11:Caption := ""
									oItems7 := oItem11:Items()
										oItem12 := oItems7:Add("",2)
											oItem12:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
											oItems8 := oItem12:Items()
												oItem13 := oItems8:Add("Button1",2)
													oItem13:ShowAsButton := 275/*exShowAsSelectButtonBottom+exShowAsButtonAutoSize*/
													oItems9 := oItem13:Items()
														oItems9:Add("Item 1")
														oItems9:Add("Item 2")
														oItems9:Add("Item 3")
												oItems8:Add("",0,0):Padding := "4,0,0,0"
												oItem14 := oItems8:Add("Button2",2)
													oItem14:ShowAsButton := 275/*exShowAsSelectButtonBottom+exShowAsButtonAutoSize*/
													oItems10 := oItem14:Items()
														oItems10:Add("Item 4")
														oItems10:Add("Item 5")
														oItems10:Add("Item 6")
										oItem15 := oItems7:Add("Popup",2)
											oItem15:Alignment := 1/*exCenter*/
											oItems11 := oItem15:Items()
												oItems11:Add("Item 7"):Check := .T.
												oItems11:Add("Item 8")
												oItems12 := oItems11:Add("Item 9",2):Items()
													oItems12:Add("Item 10")
													oItems12:Add("Item 11")
													oItems12:Add("Item 12")
				var_Item4 := oItems1:Add("New Page")
					var_Item4:ToString := "[id=0][typ=2][chk=0][spchk=-1][show=1][grp=10][bghot=0x12000000][bgsel=0x11000000][bgselhot=0x14000000][group=0x03][tab=9000][pad=4,0,4,0][popupoffset=-4,-1]([id=0][group=0x03]([id=0][group=0x03]))"
					var_Item4:ID := 300
					var_Item4:Caption := "Page2"
					var_Item4:ShowPopupAlign := 1/*exShowPopupAlignDown*/
					oItem16 := var_Item4:Items:Item(0)
						oItems13 := oItem16:Items()
							oItem17 := oItems13:Add("S1")
								oItem17:ItemHeight := 88
								oItem17:AllowEdit := 1540/*exItemEditVertical+exItemEditSpin+exItemEditProgress*/
								oItem17:EditValue := 25
							oItem18 := oItems13:Add("S2")
								oItem18:ItemHeight := 88
								oItem18:AllowEdit := 1540/*exItemEditVertical+exItemEditSpin+exItemEditProgress*/
								oItem18:EditValue := 50
							oItem19 := oItems13:Add("S3")
								oItem19:ItemHeight := 88
								oItem19:AllowEdit := 1540/*exItemEditVertical+exItemEditSpin+exItemEditProgress*/
								oItem19:EditValue := 75
				oItems1:Add("",0,0):Padding := "8,0,0,0"
		oToolBar:PopupFlatAppearance := .F.
		oAppearance := oToolBar:VisualAppearance()
			oAppearance:Add(1,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_background.ebn")
			oAppearance:Add(2,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_groupt.ebn")
			oAppearance:Add(3,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_groupo.ebn")
			oAppearance:Add(4,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_grouphot.ebn")
			oAppearance:Add(5,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_frameh.ebn")
			oAppearance:Add(6,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_framehs.ebn")
			oAppearance:Add(7,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_framehi.ebn")
			oAppearance:Add(8,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_framehe.ebn")
			oAppearance:Add(9,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_framevs.ebn")
			oAppearance:Add(10,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_framevi.ebn")
			oAppearance:Add(11,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_frameve.ebn")
			oAppearance:Add(12,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_select.ebn")
			oAppearance:Add(13,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_bordert.ebn")
			oAppearance:Add(14,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_buttond.ebn")
			oAppearance:Add(15,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_buttonu.ebn")
			oAppearance:Add(16,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_tab.ebn")
			oAppearance:Add(17,"CP:16 0 0 0 1")
			oAppearance:Add(18,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_tabhot.ebn")
			oAppearance:Add(19,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_tabselhot.ebn")
			oAppearance:Add(20,"CP:19 0 0 0 1")
		oToolBar:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 21,66,139 } )  , .F. ))
		oToolBar:SetProperty("SelBackColor",0xe000000)
		oToolBar:LocalAppearance := 6/*ShadowBorder*/
		oToolBar:Appearance := 16777216/*0x1000000+*/
		oToolBar:SetProperty("Background",64/*exToolTipAppearance*/,oToolBar:Appearance())
		oToolBar:SetProperty("Background",2/*0x2+*/,0xd000000)
		oToolBar:SetProperty("Background",105/*exGroupPopupFrameSingle*/,0x5000000)
		oToolBar:SetProperty("Background",106/*exGroupPopupFrameHStart*/,0x6000000)
		oToolBar:SetProperty("Background",107/*exGroupPopupFrameHIntermediate*/,0x7000000)
		oToolBar:SetProperty("Background",108/*exGroupPopupFrameHEnd*/,0x8000000)
		oToolBar:SetProperty("Background",116/*exGroupPopupFrameVStart*/,0x9000000)
		oToolBar:SetProperty("Background",117/*exGroupPopupFrameVIntermediate*/,0xa000000)
		oToolBar:SetProperty("Background",118/*exGroupPopupFrameVEnd*/,0xb000000)
		oToolBar:SetProperty("Background",110/*exMenuHotBackColor*/,0xc000000)
		oToolBar:SetProperty("Background",112/*exMenuSelHotBackColor*/,0xf000000)
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
213:
Is there any debug option, so I can see the IDs of the items I have in the control

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ArrangeItemsAs := 1/*exArrangeItemsHorizontal*/
		oToolBar:Debug := .T.
		oItems := oToolBar:Items()
			oItem := oItems:Add("Expand",2)
				oItem:GroupPopup := 259/*exGroupPopupVertical+exNoGroupPopupFrame+exGroupPopup*/
				oItem:Check := .T.
				oItem:ShowPopupOnChecked := .T.
				oItems1 := oItem:Items()
					oItems1:Padding := "22,0,0,0"
					oItems1:Add("Radio 1"):Radio := .T.
					oItems1:Add("Radio 2"):Radio := .T.
					oItem1 := oItems1:Add("Radio 3")
						oItem1:Radio := .T.
						oItem1:Checked := .T.
				oItem:Checked := .T.
			oItems:Add(""):ToString := "Expand[typ=1][chk=1][spchk=-1][group=0x0103][itemspad=22,0,0,0](Radio 1[id=20][typ=2],Radio 2[id=30][typ=2],Radio 3[id=40][typ=2][chk=1])"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
212:
Microsoft Office - Ribbon Like - Minimized

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oItem,oItem1,oItem10,oItem11,oItem12,oItem13,oItem14,oItem15,oItem16,oItem17,oItem18,oItem2,oItem3,oItem4,oItem5,oItem6,oItem7,oItem8,oItem9,var_Item,var_Item1,var_Item2,var_Item3,var_Item4
	LOCAL oItems,oItems1,oItems10,oItems11,oItems12,oItems13,oItems2,oItems3,oItems4,oItems5,oItems6,oItems7,oItems8,oItems9
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:ToString := "[id=0][group=0x03](),[id=-99][bg=0x01000000][group=0x03][itemspad=4,4,4,4]([id=9000])"
			oItems:Item(-99):Visible := .F.
			oItems1 := oItems:Item(0):Items()
				oItems1:Add("",0,0):Padding := "8,0,0,0"
				var_Item3 := oItems1:Add("New Page")
					var_Item3:ToString := "[id=0][typ=2][chk=1][spchk=-1][show=1][grp=10][bghot=0x12000000][bgsel=0x11000000][bgselhot=0x14000000][group=0x03][tab=9000][pad=4,0,4,0][popupoffset=-4,-1]([id=0][group=0x03]([id=0][group=0x03]))"
					var_Item3:ID := 200
					var_Item3:Caption := "Page1"
					var_Item3:ShowPopupAlign := 1/*exShowPopupAlignDown*/
					oItem := var_Item3:Items:Item(0)
						var_Item := oItem:Items:Add("New Group")
							var_Item:ToString := "[id=0][group=0x03][itemspad=4,4,4,18][itemsbg=0x02000000][itemsbghot=0x04000000]()"
							var_Item:Caption := "<b><font ;14>A"
							oItems2 := var_Item:Items()
								oItems2:BackgroundExt := "bottom[16,text=`<fgcolor A0A0A0><font ;8>Horizontal`,align=0x11]"
								oItem1 := oItems2:Add("",2)
									oItem1:GroupPopup := 17/*exGroupPopupEqualWidth+exGroupPopup*/
									oItem1:Caption := ""
									oItems3 := oItem1:Items()
										oItem2 := oItems3:Add("R1")
											oItem2:RadioGroup := 100
											oItem2:Radio := .T.
											oItem2:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
											oItem2:Checked := .F.
										oItem3 := oItems3:Add("R2")
											oItem3:RadioGroup := 100
											oItem3:Radio := .T.
											oItem3:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
											oItem3:Checked := .T.
										oItem4 := oItems3:Add("R3")
											oItem4:RadioGroup := 100
											oItem4:Radio := .T.
											oItem4:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
											oItem4:Checked := .F.
						var_Item1 := oItem:Items:Add("New Group")
							var_Item1:ToString := "[id=0][group=0x03][itemspad=4,4,4,18][itemsbg=0x02000000][itemsbghot=0x04000000]()"
							var_Item1:Caption := "<b><font ;14>B"
							oItems4 := var_Item1:Items()
								oItems4:BackgroundExt := "bottom[16,text=`<fgcolor A0A0A0><font ;8>Vertical`,align=0x11]"
								oItem5 := oItems4:Add("",2)
									oItem5:GroupPopup := 289/*exGroupPopupVertical+exGroupPopupEqualHeight+exGroupPopup*/
									oItem5:Caption := ""
									oItems5 := oItem5:Items()
										oItem6 := oItems5:Add("C1")
											oItem6:Check := .T.
											oItem6:Checked := .T.
										oItem7 := oItems5:Add("C2")
											oItem7:Check := .T.
											oItem7:Checked := .F.
										oItem8 := oItems5:Add("C3")
											oItem8:Check := .T.
											oItem8:Checked := .T.
						oItem:Items():Add("",0,0):Padding := "4,0,0,0"
						var_Item2 := oItem:Items:Add("New Group")
							var_Item2:ToString := "[id=0][group=0x03][itemspad=4,4,4,18][itemsbg=0x02000000][itemsbghot=0x04000000]()"
							var_Item2:Caption := ""
							oItems6 := var_Item2:Items()
								oItems6:BackgroundExt := "bottom[16,text=`<fgcolor A0A0A0><font ;8>Mixt`,align=0x11]"
								oItem9 := oItems6:Add("",0)
									oItem9:AllowEdit := 1027/*exItemEditVertical+exItemEditSlider*/
									oItem9:ItemHeight := 76
									oItem9:EditBorder := 0/*exEditBorderNone*/
									oItem9:EditValue := 25
								oItem10 := oItems6:Add("",2)
									oItem10:GroupPopup := 259/*exGroupPopupVertical+exNoGroupPopupFrame+exGroupPopup*/
									oItem10:Caption := ""
									oItems7 := oItem10:Items()
										oItem11 := oItems7:Add("",2)
											oItem11:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
											oItems8 := oItem11:Items()
												oItem12 := oItems8:Add("Button1",2)
													oItem12:ShowAsButton := 275/*exShowAsSelectButtonBottom+exShowAsButtonAutoSize*/
													oItems9 := oItem12:Items()
														oItems9:Add("Item 1")
														oItems9:Add("Item 2")
														oItems9:Add("Item 3")
												oItems8:Add("",0,0):Padding := "4,0,0,0"
												oItem13 := oItems8:Add("Button2",2)
													oItem13:ShowAsButton := 275/*exShowAsSelectButtonBottom+exShowAsButtonAutoSize*/
													oItems10 := oItem13:Items()
														oItems10:Add("Item 4")
														oItems10:Add("Item 5")
														oItems10:Add("Item 6")
										oItem14 := oItems7:Add("Popup",2)
											oItem14:Alignment := 1/*exCenter*/
											oItems11 := oItem14:Items()
												oItems11:Add("Item 7"):Check := .T.
												oItems11:Add("Item 8")
												oItems12 := oItems11:Add("Item 9",2):Items()
													oItems12:Add("Item 10")
													oItems12:Add("Item 11")
													oItems12:Add("Item 12")
				var_Item4 := oItems1:Add("New Page")
					var_Item4:ToString := "[id=0][typ=2][chk=0][spchk=-1][show=1][grp=10][bghot=0x12000000][bgsel=0x11000000][bgselhot=0x14000000][group=0x03][tab=9000][pad=4,0,4,0][popupoffset=-4,-1]([id=0][group=0x03]([id=0][group=0x03]))"
					var_Item4:ID := 300
					var_Item4:Caption := "Page2"
					var_Item4:ShowPopupAlign := 1/*exShowPopupAlignDown*/
					oItem15 := var_Item4:Items:Item(0)
						oItems13 := oItem15:Items()
							oItem16 := oItems13:Add("S1")
								oItem16:ItemHeight := 88
								oItem16:AllowEdit := 1540/*exItemEditVertical+exItemEditSpin+exItemEditProgress*/
								oItem16:EditValue := 25
							oItem17 := oItems13:Add("S2")
								oItem17:ItemHeight := 88
								oItem17:AllowEdit := 1540/*exItemEditVertical+exItemEditSpin+exItemEditProgress*/
								oItem17:EditValue := 50
							oItem18 := oItems13:Add("S3")
								oItem18:ItemHeight := 88
								oItem18:AllowEdit := 1540/*exItemEditVertical+exItemEditSpin+exItemEditProgress*/
								oItem18:EditValue := 75
				oItems1:Add("",0,0):Padding := "8,0,0,0"
		oToolBar:PopupFlatAppearance := .F.
		oAppearance := oToolBar:VisualAppearance()
			oAppearance:Add(1,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_background.ebn")
			oAppearance:Add(2,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_groupt.ebn")
			oAppearance:Add(3,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_groupo.ebn")
			oAppearance:Add(4,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_grouphot.ebn")
			oAppearance:Add(5,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_frameh.ebn")
			oAppearance:Add(6,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_framehs.ebn")
			oAppearance:Add(7,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_framehi.ebn")
			oAppearance:Add(8,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_framehe.ebn")
			oAppearance:Add(9,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_framevs.ebn")
			oAppearance:Add(10,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_framevi.ebn")
			oAppearance:Add(11,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_frameve.ebn")
			oAppearance:Add(12,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_select.ebn")
			oAppearance:Add(13,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_bordert.ebn")
			oAppearance:Add(14,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_buttond.ebn")
			oAppearance:Add(15,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_buttonu.ebn")
			oAppearance:Add(16,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_tab.ebn")
			oAppearance:Add(17,"CP:16 0 0 0 1")
			oAppearance:Add(18,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_tabhot.ebn")
			oAppearance:Add(19,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_tabselhot.ebn")
			oAppearance:Add(20,"CP:19 0 0 0 1")
		oToolBar:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 21,66,139 } )  , .F. ))
		oToolBar:SetProperty("SelBackColor",0xe000000)
		oToolBar:LocalAppearance := 6/*ShadowBorder*/
		oToolBar:Appearance := 16777216/*0x1000000+*/
		oToolBar:SetProperty("Background",64/*exToolTipAppearance*/,oToolBar:Appearance())
		oToolBar:SetProperty("Background",2/*0x2+*/,0xd000000)
		oToolBar:SetProperty("Background",105/*exGroupPopupFrameSingle*/,0x5000000)
		oToolBar:SetProperty("Background",106/*exGroupPopupFrameHStart*/,0x6000000)
		oToolBar:SetProperty("Background",107/*exGroupPopupFrameHIntermediate*/,0x7000000)
		oToolBar:SetProperty("Background",108/*exGroupPopupFrameHEnd*/,0x8000000)
		oToolBar:SetProperty("Background",116/*exGroupPopupFrameVStart*/,0x9000000)
		oToolBar:SetProperty("Background",117/*exGroupPopupFrameVIntermediate*/,0xa000000)
		oToolBar:SetProperty("Background",118/*exGroupPopupFrameVEnd*/,0xb000000)
		oToolBar:SetProperty("Background",110/*exMenuHotBackColor*/,0xc000000)
		oToolBar:SetProperty("Background",112/*exMenuSelHotBackColor*/,0xf000000)
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
211:
Microsoft Paint - Ribbon Like - Minimized

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oItem,oItem1,oItem10,oItem11,oItem12,oItem13,oItem14,oItem15,oItem16,oItem17,oItem18,oItem2,oItem3,oItem4,oItem5,oItem6,oItem7,oItem8,oItem9,var_Item,var_Item1,var_Item2,var_Item3,var_Item4
	LOCAL oItems,oItems1,oItems10,oItems11,oItems12,oItems13,oItems2,oItems3,oItems4,oItems5,oItems6,oItems7,oItems8,oItems9
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:ToString := "[id=0][group=0x03](),[id=-99][bg=0x01000000][group=0x03][itemspad=4,4,4,4]([id=9000])"
			oItems:Item(-99):Visible := .F.
			oItems1 := oItems:Item(0):Items()
				oItems1:Add("",0,0):Padding := "8,0,0,0"
				var_Item3 := oItems1:Add("New Page")
					var_Item3:ToString := "[id=0][typ=2][chk=1][spchk=-1][show=1][grp=10][bghot=0x12000000][bgsel=0x11000000][bgselhot=0x14000000][group=0x03][tab=9000][pad=4,0,4,0][popupoffset=-4,-1]([id=0][group=0x03]([id=0][group=0x03]))"
					var_Item3:ID := 200
					var_Item3:Caption := "Page1"
					var_Item3:ShowPopupAlign := 1/*exShowPopupAlignDown*/
					oItem := var_Item3:Items:Item(0)
						var_Item := oItem:Items:Add("New Group")
							var_Item:ToString := "[id=0][group=0x03][itemspad=4,4,4,18][itemsbg=0x02000000][itemsbghot=0x04000000]()"
							var_Item:Caption := "<b><font ;14>A"
							oItems2 := var_Item:Items()
								oItems2:BackgroundExt := "bottom[16,text=`<fgcolor A0A0A0><font ;8>Horizontal`,align=0x11]"
								oItem1 := oItems2:Add("",2)
									oItem1:GroupPopup := 17/*exGroupPopupEqualWidth+exGroupPopup*/
									oItem1:Caption := ""
									oItems3 := oItem1:Items()
										oItem2 := oItems3:Add("R1")
											oItem2:RadioGroup := 100
											oItem2:Radio := .T.
											oItem2:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
											oItem2:Checked := .F.
										oItem3 := oItems3:Add("R2")
											oItem3:RadioGroup := 100
											oItem3:Radio := .T.
											oItem3:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
											oItem3:Checked := .T.
										oItem4 := oItems3:Add("R3")
											oItem4:RadioGroup := 100
											oItem4:Radio := .T.
											oItem4:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
											oItem4:Checked := .F.
						var_Item1 := oItem:Items:Add("New Group")
							var_Item1:ToString := "[id=0][group=0x03][itemspad=4,4,4,18][itemsbg=0x02000000][itemsbghot=0x04000000]()"
							var_Item1:Caption := "<b><font ;14>B"
							oItems4 := var_Item1:Items()
								oItems4:BackgroundExt := "bottom[16,text=`<fgcolor A0A0A0><font ;8>Vertical`,align=0x11]"
								oItem5 := oItems4:Add("",2)
									oItem5:GroupPopup := 289/*exGroupPopupVertical+exGroupPopupEqualHeight+exGroupPopup*/
									oItem5:Caption := ""
									oItems5 := oItem5:Items()
										oItem6 := oItems5:Add("C1")
											oItem6:Check := .T.
											oItem6:Checked := .T.
										oItem7 := oItems5:Add("C2")
											oItem7:Check := .T.
											oItem7:Checked := .F.
										oItem8 := oItems5:Add("C3")
											oItem8:Check := .T.
											oItem8:Checked := .T.
						oItem:Items():Add("",0,0):Padding := "4,0,0,0"
						var_Item2 := oItem:Items:Add("New Group")
							var_Item2:ToString := "[id=0][group=0x03][itemspad=4,4,4,18][itemsbg=0x02000000][itemsbghot=0x04000000]()"
							var_Item2:Caption := ""
							oItems6 := var_Item2:Items()
								oItems6:BackgroundExt := "bottom[16,text=`<fgcolor A0A0A0><font ;8>Mixt`,align=0x11]"
								oItem9 := oItems6:Add("",0)
									oItem9:AllowEdit := 1027/*exItemEditVertical+exItemEditSlider*/
									oItem9:ItemHeight := 76
									oItem9:EditBorder := 0/*exEditBorderNone*/
									oItem9:EditValue := 25
								oItem10 := oItems6:Add("",2)
									oItem10:GroupPopup := 259/*exGroupPopupVertical+exNoGroupPopupFrame+exGroupPopup*/
									oItem10:Caption := ""
									oItems7 := oItem10:Items()
										oItem11 := oItems7:Add("",2)
											oItem11:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
											oItems8 := oItem11:Items()
												oItem12 := oItems8:Add("Button1",2)
													oItem12:ShowAsButton := 275/*exShowAsSelectButtonBottom+exShowAsButtonAutoSize*/
													oItems9 := oItem12:Items()
														oItems9:Add("Item 1")
														oItems9:Add("Item 2")
														oItems9:Add("Item 3")
												oItems8:Add("",0,0):Padding := "4,0,0,0"
												oItem13 := oItems8:Add("Button2",2)
													oItem13:ShowAsButton := 275/*exShowAsSelectButtonBottom+exShowAsButtonAutoSize*/
													oItems10 := oItem13:Items()
														oItems10:Add("Item 4")
														oItems10:Add("Item 5")
														oItems10:Add("Item 6")
										oItem14 := oItems7:Add("Popup",2)
											oItem14:Alignment := 1/*exCenter*/
											oItems11 := oItem14:Items()
												oItems11:Add("Item 7"):Check := .T.
												oItems11:Add("Item 8")
												oItems12 := oItems11:Add("Item 9",2):Items()
													oItems12:Add("Item 10")
													oItems12:Add("Item 11")
													oItems12:Add("Item 12")
				var_Item4 := oItems1:Add("New Page")
					var_Item4:ToString := "[id=0][typ=2][chk=0][spchk=-1][show=1][grp=10][bghot=0x12000000][bgsel=0x11000000][bgselhot=0x14000000][group=0x03][tab=9000][pad=4,0,4,0][popupoffset=-4,-1]([id=0][group=0x03]([id=0][group=0x03]))"
					var_Item4:ID := 300
					var_Item4:Caption := "Page2"
					var_Item4:ShowPopupAlign := 1/*exShowPopupAlignDown*/
					oItem15 := var_Item4:Items:Item(0)
						oItems13 := oItem15:Items()
							oItem16 := oItems13:Add("S1")
								oItem16:ItemHeight := 88
								oItem16:AllowEdit := 1540/*exItemEditVertical+exItemEditSpin+exItemEditProgress*/
								oItem16:EditValue := 25
							oItem17 := oItems13:Add("S2")
								oItem17:ItemHeight := 88
								oItem17:AllowEdit := 1540/*exItemEditVertical+exItemEditSpin+exItemEditProgress*/
								oItem17:EditValue := 50
							oItem18 := oItems13:Add("S3")
								oItem18:ItemHeight := 88
								oItem18:AllowEdit := 1540/*exItemEditVertical+exItemEditSpin+exItemEditProgress*/
								oItem18:EditValue := 75
				oItems1:Add("",0,0):Padding := "8,0,0,0"
		oToolBar:PopupFlatAppearance := .F.
		oAppearance := oToolBar:VisualAppearance()
			oAppearance:Add(1,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_background.ebn")
			oAppearance:Add(2,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_groupt.ebn")
			oAppearance:Add(3,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_groupo.ebn")
			oAppearance:Add(4,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_grouphot.ebn")
			oAppearance:Add(5,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_frameh.ebn")
			oAppearance:Add(6,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_framehs.ebn")
			oAppearance:Add(7,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_framehi.ebn")
			oAppearance:Add(8,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_framehe.ebn")
			oAppearance:Add(9,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_framevs.ebn")
			oAppearance:Add(10,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_framevi.ebn")
			oAppearance:Add(11,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_frameve.ebn")
			oAppearance:Add(12,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_select.ebn")
			oAppearance:Add(13,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_bordert.ebn")
			oAppearance:Add(14,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_buttond.ebn")
			oAppearance:Add(15,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_buttonu.ebn")
			oAppearance:Add(16,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_tab.ebn")
			oAppearance:Add(17,"CP:16 0 0 0 1")
			oAppearance:Add(18,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_tabhot.ebn")
			oAppearance:Add(19,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_tabselhot.ebn")
			oAppearance:Add(20,"CP:19 0 0 0 1")
		oToolBar:LocalAppearance := 6/*ShadowBorder*/
		oToolBar:Appearance := 16777216/*0x1000000+*/
		oToolBar:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 21,66,139 } )  , .F. ))
		oToolBar:SetProperty("SelBackColor",0xe000000)
		oToolBar:SetProperty("Background",64/*exToolTipAppearance*/,oToolBar:Appearance())
		oToolBar:SetProperty("Background",2/*0x2+*/,0xd000000)
		oToolBar:SetProperty("Background",105/*exGroupPopupFrameSingle*/,0x5000000)
		oToolBar:SetProperty("Background",106/*exGroupPopupFrameHStart*/,0x6000000)
		oToolBar:SetProperty("Background",107/*exGroupPopupFrameHIntermediate*/,0x7000000)
		oToolBar:SetProperty("Background",108/*exGroupPopupFrameHEnd*/,0x8000000)
		oToolBar:SetProperty("Background",116/*exGroupPopupFrameVStart*/,0x9000000)
		oToolBar:SetProperty("Background",117/*exGroupPopupFrameVIntermediate*/,0xa000000)
		oToolBar:SetProperty("Background",118/*exGroupPopupFrameVEnd*/,0xb000000)
		oToolBar:SetProperty("Background",110/*exMenuHotBackColor*/,0xc000000)
		oToolBar:SetProperty("Background",112/*exMenuSelHotBackColor*/,0xf000000)
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
210:
Microsoft Windows 8.1 - Ribbon Like - Minimized

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oItem,oItem1,oItem10,oItem11,oItem12,oItem13,oItem14,oItem15,oItem16,oItem17,oItem18,oItem2,oItem3,oItem4,oItem5,oItem6,oItem7,oItem8,oItem9,var_Item,var_Item1,var_Item2,var_Item3,var_Item4
	LOCAL oItems,oItems1,oItems10,oItems11,oItems12,oItems13,oItems2,oItems3,oItems4,oItems5,oItems6,oItems7,oItems8,oItems9
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:ToString := "[id=0][group=0x03](),[id=-99][bg=0x01000000][group=0x03][itemspad=4,4,4,4]([id=9000])"
			oItems:Item(-99):Visible := .F.
			oItems1 := oItems:Item(0):Items()
				oItems1:Add("",0,0):Padding := "8,0,0,0"
				var_Item3 := oItems1:Add("New Page")
					var_Item3:ToString := "[id=0][typ=2][chk=1][spchk=-1][show=1][grp=10][bghot=0x12000000][bgsel=0x11000000][bgselhot=0x14000000][group=0x03][tab=9000][pad=4,0,4,0][popupoffset=-4,-1]([id=0][group=0x03]([id=0][group=0x03]))"
					var_Item3:ID := 200
					var_Item3:Caption := "Page1"
					var_Item3:ShowPopupAlign := 1/*exShowPopupAlignDown*/
					oItem := var_Item3:Items:Item(0)
						var_Item := oItem:Items:Add("New Group")
							var_Item:ToString := "[id=0][group=0x03][itemspad=4,4,4,18][itemsbg=0x02000000][itemsbghot=0x04000000]()"
							var_Item:Caption := "<b><font ;14>A"
							oItems2 := var_Item:Items()
								oItems2:BackgroundExt := "bottom[16,text=`<fgcolor A0A0A0><font ;8>Horizontal`,align=0x11]"
								oItem1 := oItems2:Add("",2)
									oItem1:GroupPopup := 17/*exGroupPopupEqualWidth+exGroupPopup*/
									oItem1:Caption := ""
									oItems3 := oItem1:Items()
										oItem2 := oItems3:Add("R1")
											oItem2:RadioGroup := 100
											oItem2:Radio := .T.
											oItem2:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
											oItem2:Checked := .F.
										oItem3 := oItems3:Add("R2")
											oItem3:RadioGroup := 100
											oItem3:Radio := .T.
											oItem3:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
											oItem3:Checked := .T.
										oItem4 := oItems3:Add("R3")
											oItem4:RadioGroup := 100
											oItem4:Radio := .T.
											oItem4:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
											oItem4:Checked := .F.
						var_Item1 := oItem:Items:Add("New Group")
							var_Item1:ToString := "[id=0][group=0x03][itemspad=4,4,4,18][itemsbg=0x02000000][itemsbghot=0x04000000]()"
							var_Item1:Caption := "<b><font ;14>B"
							oItems4 := var_Item1:Items()
								oItems4:BackgroundExt := "bottom[16,text=`<fgcolor A0A0A0><font ;8>Vertical`,align=0x11]"
								oItem5 := oItems4:Add("",2)
									oItem5:GroupPopup := 289/*exGroupPopupVertical+exGroupPopupEqualHeight+exGroupPopup*/
									oItem5:Caption := ""
									oItems5 := oItem5:Items()
										oItem6 := oItems5:Add("C1")
											oItem6:Check := .T.
											oItem6:Checked := .T.
										oItem7 := oItems5:Add("C2")
											oItem7:Check := .T.
											oItem7:Checked := .F.
										oItem8 := oItems5:Add("C3")
											oItem8:Check := .T.
											oItem8:Checked := .T.
						oItem:Items():Add("",0,0):Padding := "4,0,0,0"
						var_Item2 := oItem:Items:Add("New Group")
							var_Item2:ToString := "[id=0][group=0x03][itemspad=4,4,4,18][itemsbg=0x02000000][itemsbghot=0x04000000]()"
							var_Item2:Caption := ""
							oItems6 := var_Item2:Items()
								oItems6:BackgroundExt := "bottom[16,text=`<fgcolor A0A0A0><font ;8>Mixt`,align=0x11]"
								oItem9 := oItems6:Add("",0)
									oItem9:AllowEdit := 1027/*exItemEditVertical+exItemEditSlider*/
									oItem9:ItemHeight := 76
									oItem9:EditBorder := 0/*exEditBorderNone*/
									oItem9:EditValue := 25
								oItem10 := oItems6:Add("",2)
									oItem10:GroupPopup := 259/*exGroupPopupVertical+exNoGroupPopupFrame+exGroupPopup*/
									oItem10:Caption := ""
									oItems7 := oItem10:Items()
										oItem11 := oItems7:Add("",2)
											oItem11:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
											oItems8 := oItem11:Items()
												oItem12 := oItems8:Add("Button1",2)
													oItem12:ShowAsButton := 275/*exShowAsSelectButtonBottom+exShowAsButtonAutoSize*/
													oItems9 := oItem12:Items()
														oItems9:Add("Item 1")
														oItems9:Add("Item 2")
														oItems9:Add("Item 3")
												oItems8:Add("",0,0):Padding := "4,0,0,0"
												oItem13 := oItems8:Add("Button2",2)
													oItem13:ShowAsButton := 275/*exShowAsSelectButtonBottom+exShowAsButtonAutoSize*/
													oItems10 := oItem13:Items()
														oItems10:Add("Item 4")
														oItems10:Add("Item 5")
														oItems10:Add("Item 6")
										oItem14 := oItems7:Add("Popup",2)
											oItem14:Alignment := 1/*exCenter*/
											oItems11 := oItem14:Items()
												oItems11:Add("Item 7"):Check := .T.
												oItems11:Add("Item 8")
												oItems12 := oItems11:Add("Item 9",2):Items()
													oItems12:Add("Item 10")
													oItems12:Add("Item 11")
													oItems12:Add("Item 12")
				var_Item4 := oItems1:Add("New Page")
					var_Item4:ToString := "[id=0][typ=2][chk=0][spchk=-1][show=1][grp=10][bghot=0x12000000][bgsel=0x11000000][bgselhot=0x14000000][group=0x03][tab=9000][pad=4,0,4,0][popupoffset=-4,-1]([id=0][group=0x03]([id=0][group=0x03]))"
					var_Item4:ID := 300
					var_Item4:Caption := "Page2"
					var_Item4:ShowPopupAlign := 1/*exShowPopupAlignDown*/
					oItem15 := var_Item4:Items:Item(0)
						oItems13 := oItem15:Items()
							oItem16 := oItems13:Add("S1")
								oItem16:ItemHeight := 88
								oItem16:AllowEdit := 1540/*exItemEditVertical+exItemEditSpin+exItemEditProgress*/
								oItem16:EditValue := 25
							oItem17 := oItems13:Add("S2")
								oItem17:ItemHeight := 88
								oItem17:AllowEdit := 1540/*exItemEditVertical+exItemEditSpin+exItemEditProgress*/
								oItem17:EditValue := 50
							oItem18 := oItems13:Add("S3")
								oItem18:ItemHeight := 88
								oItem18:AllowEdit := 1540/*exItemEditVertical+exItemEditSpin+exItemEditProgress*/
								oItem18:EditValue := 75
				oItems1:Add("",0,0):Padding := "8,0,0,0"
		oToolBar:PopupFlatAppearance := .F.
		oAppearance := oToolBar:VisualAppearance()
			oAppearance:Add(1,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSFlat-Ribbon/msfr_background.ebn")
			oAppearance:Add(2,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSFlat-Ribbon/msfr_groupt.ebn")
			oAppearance:Add(12,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSFlat-Ribbon/msfr_hot.ebn")
			oAppearance:Add(14,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSFlat-Ribbon/msfr_select.ebn")
			oAppearance:Add(17,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSFlat-Ribbon/msfr_tab.ebn")
			oAppearance:Add(18,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSFlat-Ribbon/msfr_tabhot.ebn")
			oAppearance:Add(32,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSFlat-Ribbon/msfr_check0.ebn")
			oAppearance:Add(33,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSFlat-Ribbon/msfr_check1.ebn")
			oAppearance:Add(34,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSFlat-Ribbon/msfr_buttonu.ebn")
			oAppearance:Add(35,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSFlat-Ribbon/msfr_buttond.ebn")
		oToolBar:Appearance := 16777216/*0x1000000+*/
		oToolBar:SetProperty("Background",64/*exToolTipAppearance*/,oToolBar:Appearance())
		oToolBar:SetProperty("SelBackColor",0xe000000)
		oToolBar:SetProperty("Background",110/*exMenuHotBackColor*/,0xc000000)
		oToolBar:SetProperty("Background",112/*exMenuSelHotBackColor*/,0x23000000)
		oToolBar:SetProperty("Background",2/*0x2+*/,0x22000000)
		oToolBar:SetProperty("Background",3/*0x3+*/,0x23000000)
		oToolBar:SetProperty("Background",70/*exCheckBoxState0*/,0x20000000)
		oToolBar:SetProperty("Background",71/*exCheckBoxState1*/,0x21000000)
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
209:
How can I display a tab into the toolbar (method 2, minimized)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3
	LOCAL oItems,oItems1,oItems2,oItems3
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SetProperty("Background",102/*exMenuSelBorderColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oItems := oToolBar:Items()
			oItems:ToString := "[id=0][group=0x0103][itemspad=4,4,4,4]([id=-10][group=0x03](),[id=-99][bg=RGB(240,240,240)][group=0x03][itemspad=4,4,4,4]([id=-100]))"
			oItems:Item(-99):Visible := .F.
			oItems1 := oItems:Item(-10):Items()
				oItems1:Add("",0,0):Padding := "8,0,0,0"
				oItem := oItems1:Add("New Page")
					oItem:ToString := "[typ=2][chk=1][spchk=-1][show=1][grp=10][bghot=RGB(255,255,255)][bgsel=RGB(240,240,240)][bgselhot=RGB(240,240,240)][height=16][group=0x03][tab=-100][pad=2,0,2,0][popupalign=0x01]([id=0][group=0x03]([]))"
					oItem:Caption := "Page<off -5><font ;5><b>1</b></font></off>"
					oItems2 := oItem:Items:Item(0):Items()
						oItem1 := oItems2:Add("add here fields for page 1")
							oItem1:ID := -1000
							oItem1:Enabled := .F.
							oItem1:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
				oItem2 := oItems1:Add("New Page")
					oItem2:ToString := "[typ=2][chk=0][spchk=-1][show=1][grp=10][bghot=RGB(255,255,255)][bgsel=RGB(240,240,240)][bgselhot=RGB(240,240,240)][height=16][group=0x03][tab=-100][pad=2,0,2,0][popupalign=0x01]([id=0][group=0x03]([]))"
					oItem2:Caption := "Page<off -5><font ;5><b>2</b></font></off>"
					oItems3 := oItem2:Items:Item(0):Items()
						oItem3 := oItems3:Add("add here fields for page 2")
							oItem3:ID := -1001
							oItem3:Enabled := .F.
							oItem3:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,255,0 } )  , .F. ))
				oItems1:Add("",0,0):Padding := "8,0,0,0"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
208:
How can I display a tab into the toolbar (method 1, minimized)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SetProperty("Background",102/*exMenuSelBorderColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oToolBar:ToString := "[group=0x0103][itemspad=4,4,4,4]([id=-10][group=0x03]([id=50][pad=8,0,0,0],Page<off -5><font ;5><b>1</b></font></off>[id=60][typ=2][chk=1][spchk=-1][show=1][grp=10][bghot=RGB(255,255,255)][bgsel=RGB(240,240,240)][bgselhot=RGB(240,240,240)][height=16][group=0x03][tab=-100][pad=2,0,2,0][popupalign=1]([group=0x03]([id=80],add here fields for page 1[id=-1000][dis])),Page<off -5><font ;5><b>2</b></font></off>[id=100][typ=2][spchk=-1][show=1][grp=10][bghot=RGB(255,255,255)][bgsel=RGB(240,240,240)][bgselhot=RGB(2" +;
		"40,240,240)][height=16][group=0x03][tab=-100][pad=2,0,2,0][popupalign=1]([group=0x03]([id=120],add here fields for page 2[id=-1001][dis])),[id=140][pad=8,0,0,0]),[id=-99][bg=RGB(240,240,240)][group=0x03][itemspad=4,4,4,4]([id=-100]))"
		oItem := oToolBar:Items:Item(-1000)
			oItem:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oItem1 := oToolBar:Items:Item(-1001)
			oItem1:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,255,0 } )  , .F. ))
		oToolBar:Item(-99):Visible := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
207:
Is there a trick to arrange two or three items(buttons) on the Right side, with different widths

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ArrangeItemsAs := 1/*exArrangeItemsHorizontal*/
		oToolBar:Items():ToString := "C1[chk],C2[chk],C3[chk]"
		oItem := oToolBar:Items():Add("C4")
			oItem:ID := 40
			oItem:Check := .T.
			oItem:Checked := .T.
			oItem:ItemHeight := 24
			oItem:X := "width - (iwidth + iwidthof(50) + iwidthof(60))"
		oItem1 := oToolBar:Items():Add("C5-Baka")
			oItem1:ID := 50
			oItem1:Check := .T.
			oItem1:Checked := .T.
			oItem1:ItemHeight := 24
			oItem1:X := "width - (iwidth + iwidthof(60))"
		oItems := oToolBar:Items()
			oItem2 := oItems:Add("Expand",2)
				oItem2:ID := 60
				oItem2:ItemHeight := 24
				oItem2:X := "width - (iwidth)"
				oItem2:GroupPopup := 1/*exGroupPopup*/
				oItem2:Check := .T.
				oItem2:ShowPopupOnChecked := .T.
				oItems1 := oItem2:Items()
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
					oItems1:PopupAppearance := 6/*ShadowBorder*/
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
206:
Is there a trick to arrange two or three items(buttons) on the Right side

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ArrangeItemsAs := 1/*exArrangeItemsHorizontal*/
		oToolBar:Items():ToString := "C1[chk],C2[chk],C3[chk]"
		oItem := oToolBar:Items():Add("C4")
			oItem:Check := .T.
			oItem:Checked := .T.
			oItem:X := "width - 3*42*dpi"
		oItem1 := oToolBar:Items():Add("C5")
			oItem1:Check := .T.
			oItem1:Checked := .T.
			oItem1:X := "width - 2*42*dpi"
		oItem2 := oToolBar:Items():Add("C6")
			oItem2:Check := .T.
			oItem2:Checked := .T.
			oItem2:X := "width - 1*42*dpi"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
205:
How can I add a list of fonts

PROCEDURE OnSelectItem(oToolBar,Itm)
	/*Items(57707).Caption = Itm.Caption*/

RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SelectItem := {|Itm| OnSelectItem(oToolBar,Itm)} /*Occurs when the user selects the item.*/

		oToolBar:LocalAppearance := 8/*SingleBorder*/
		oToolBar:Items():Add("Font"):ToString := "<font Arial>Arial</font>[id=57707][align=1][button=0x0211][captionwidth=96][height=26][ttp=Font][pad=2,2,0,2][itemsbg=RGB(255,255,255)][visible=255](<font Arial>Arial</font>[id=53248][typ=1][close=0][chk=1],<font Arial Black>Arial Black</font>[id=53249][close=0],<font Comic Sans MS>Comic Sans MS</font>[id=53250][close=0],<font Courier New>Courier New</font>[id=53251][close=0],<font Georgia>Georgia</font>[id=53252][close=0],<font Impact>Impact</font>[id=53253][close=0],<font Lucida Console>Lucida Console</f" +;
		"ont>[id=53254][close=0],<font Lucida Sans Unicode>Lucida Sans Unicode</font>[id=53255][close=0],<font Tahoma>Tahoma</font>[id=53256][close=0],<font Times New Roman>Times New Roman</font>[id=53257][close=0],<font Trebuchet MS>Trebuchet MS</font>[id=53258][close=0],<font Verdana>Verdana</font>[id=53259][close=0],<font MS Sans Serif>MS Sans Serif</font>[id=53260][close=0],<font MS Serif>MS Serif</font>[id=53261][close=0])"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
204:
How can I show a pattern over all items

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 1/*exGroupPopup*/
				oItems1 := oItem:Items()
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
					oItems1:BackgroundExt := "root[pattern=0x006]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
203:
How can I show a pattern over the item

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 1/*exGroupPopup*/
				oItems1 := oItem:Items()
					oItems1:Add("Item 1"):BackgroundExt := "root[pattern=0x006]"
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
		oToolBar:Refresh()

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

PROCEDURE OnSelectItem(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SelectItem := {|Itm| OnSelectItem(oToolBar,Itm)} /*Occurs when the user selects the item.*/

		oToolBar:LocalAppearance := 8/*SingleBorder*/
		oToolBar:Items():Add("Color"):ToString := "Color[id=57685][button=0x0211][ttp=Color][itemsbg=RGB(255,255,255)][visible=255](<fgcolor 808080>color[id=350][align=1][group=0x0133][itemspad=2,2,2,2]([id=360][group=0x33]([id=49152][typ=2][close=0][chk=1][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(0,0,0)][data=RGB(0,0,0)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(0,0,0)]],[id=49153][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(68,68,68)][data=RGB(68,68,68)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(68,68,68)]],[i" +;
		"d=49154][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(102,102,102)][data=RGB(102,102,102)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(102,102,102)]],[id=49155][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(153,153,153)][data=RGB(153,153,153)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(153,153,153)]],[id=49156][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(204,204,204)][data=RGB(204,204,204)][bgext=none[(2D,2D,100%-4D,100%-4D),back" +;
		"=RGB(204,204,204)]],[id=49157][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(238,238,238)][data=RGB(238,238,238)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(238,238,238)]],[id=49158][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(243,243,243)][data=RGB(243,243,243)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(243,243,243)]],[id=49159][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(255,255,255)][data=RGB(255,255,255)][bgext=none[(2D,2D" +;
		",100%-4D,100%-4D),back=RGB(255,255,255)]]),[id=450][group=0x33]([id=49160][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(255,0,0)][data=RGB(255,0,0)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(255,0,0)]],[id=49161][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(255,153,0)][data=RGB(255,153,0)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(255,153,0)]],[id=49162][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(255,255,0)][data=RGB(255,255" +;
		",0)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(255,255,0)]],[id=49163][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(0,255,0)][data=RGB(0,255,0)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(0,255,0)]],[id=49164][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(0,255,255)][data=RGB(0,255,255)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(0,255,255)]],[id=49165][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(0,0,255)][data=RGB(0,0,255)][b" +;
		"gext=none[(2D,2D,100%-4D,100%-4D),back=RGB(0,0,255)]],[id=49166][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(153,0,255)][data=RGB(153,0,255)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(153,0,255)]],[id=49167][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(255,0,255)][data=RGB(255,0,255)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(255,0,255)]]),[id=540][group=0x33]([id=49168][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(244,204,20" +;
		"4)][data=RGB(244,204,204)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(244,204,204)]],[id=49169][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(252,229,205)][data=RGB(252,229,205)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(252,229,205)]],[id=49170][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(255,242,204)][data=RGB(255,242,204)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(255,242,204)]],[id=49171][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=" +;
		"24][ttp=RGB(217,234,211)][data=RGB(217,234,211)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(217,234,211)]],[id=49172][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(208,224,227)][data=RGB(208,224,227)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(208,224,227)]],[id=49173][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(207,226,243)][data=RGB(207,226,243)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(207,226,243)]],[id=49174][typ=2][close=0][show=1][grp=49152][ca" +;
		"ptionwidth=24][height=24][ttp=RGB(217,210,233)][data=RGB(217,210,233)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(217,210,233)]],[id=49175][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(234,209,220)][data=RGB(234,209,220)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(234,209,220)]]),[id=630][group=0x33]([id=49176][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(234,153,153)][data=RGB(234,153,153)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(234,153,153)]],[id=" +;
		"49177][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(249,203,156)][data=RGB(249,203,156)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(249,203,156)]],[id=49178][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(255,229,153)][data=RGB(255,229,153)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(255,229,153)]],[id=49179][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(182,215,168)][data=RGB(182,215,168)][bgext=none[(2D,2D,100%-4D,100%-4D),back=R" +;
		"GB(182,215,168)]],[id=49180][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(162,196,201)][data=RGB(162,196,201)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(162,196,201)]],[id=49181][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(159,197,232)][data=RGB(159,197,232)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(159,197,232)]],[id=49182][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(180,167,214)][data=RGB(180,167,214)][bgext=none[(2D,2D,1" +;
		"00%-4D,100%-4D),back=RGB(180,167,214)]],[id=49183][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(213,166,189)][data=RGB(213,166,189)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(213,166,189)]]),[id=720][group=0x33]([id=49184][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(224,102,102)][data=RGB(224,102,102)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(224,102,102)]],[id=49185][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(246,178,107)" +;
		"][data=RGB(246,178,107)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(246,178,107)]],[id=49186][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(255,217,102)][data=RGB(255,217,102)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(255,217,102)]],[id=49187][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(147,196,125)][data=RGB(147,196,125)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(147,196,125)]],[id=49188][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24" +;
		"][ttp=RGB(118,165,175)][data=RGB(118,165,175)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(118,165,175)]],[id=49189][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(111,168,220)][data=RGB(111,168,220)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(111,168,220)]],[id=49190][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(142,124,195)][data=RGB(142,124,195)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(142,124,195)]],[id=49191][typ=2][close=0][show=1][grp=49152][capt" +;
		"ionwidth=24][height=24][ttp=RGB(194,123,160)][data=RGB(194,123,160)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(194,123,160)]]),[id=810][group=0x33]([id=49192][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(204,0,0)][data=RGB(204,0,0)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(204,0,0)]],[id=49193][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(230,145,56)][data=RGB(230,145,56)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(230,145,56)]],[id=49194][typ=2][clo" +;
		"se=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(241,194,50)][data=RGB(241,194,50)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(241,194,50)]],[id=49195][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(106,168,79)][data=RGB(106,168,79)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(106,168,79)]],[id=49196][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(69,129,142)][data=RGB(69,129,142)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(69,129,142)]],[id=4919" +;
		"7][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(61,133,198)][data=RGB(61,133,198)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(61,133,198)]],[id=49198][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(103,78,167)][data=RGB(103,78,167)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(103,78,167)]],[id=49199][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(166,77,121)][data=RGB(166,77,121)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(166,77,12" +;
		"1)]]),[id=900][group=0x33]([id=49200][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(153,0,0)][data=RGB(153,0,0)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(153,0,0)]],[id=49201][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(180,95,6)][data=RGB(180,95,6)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(180,95,6)]],[id=49202][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(191,144,0)][data=RGB(191,144,0)][bgext=none[(2D,2D,100%-4D,100%-4D)," +;
		"back=RGB(191,144,0)]],[id=49203][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(56,118,29)][data=RGB(56,118,29)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(56,118,29)]],[id=49204][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(19,79,92)][data=RGB(19,79,92)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(19,79,92)]],[id=49205][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(11,83,148)][data=RGB(11,83,148)][bgext=none[(2D,2D,100%-4D,100%-4D)" +;
		",back=RGB(11,83,148)]],[id=49206][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(53,28,117)][data=RGB(53,28,117)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(53,28,117)]],[id=49207][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(116,27,71)][data=RGB(116,27,71)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(116,27,71)]]),[id=990][group=0x33]([id=49208][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(102,0,0)][data=RGB(102,0,0)][bgext=none[(" +;
		"2D,2D,100%-4D,100%-4D),back=RGB(102,0,0)]],[id=49209][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(120,63,4)][data=RGB(120,63,4)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(120,63,4)]],[id=49210][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(127,96,0)][data=RGB(127,96,0)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(127,96,0)]],[id=49211][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(39,78,19)][data=RGB(39,78,19)][bgext=none[(2D,2D," +;
		"100%-4D,100%-4D),back=RGB(39,78,19)]],[id=49212][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(12,52,61)][data=RGB(12,52,61)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(12,52,61)]],[id=49213][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(7,55,99)][data=RGB(7,55,99)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(7,55,99)]],[id=49214][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(32,18,77)][data=RGB(32,18,77)][bgext=none[(2D,2D,100%-4D," +;
		"100%-4D),back=RGB(32,18,77)]],[id=49215][typ=2][close=0][show=1][grp=49152][captionwidth=24][height=24][ttp=RGB(76,17,48)][data=RGB(76,17,48)][bgext=none[(2D,2D,100%-4D,100%-4D),back=RGB(76,17,48)]])))"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
201:
Is it possible to re-arrange the items once the toolbar is resized

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ArrangeItemsAs := 769/*exArrangeItemsScroll+exArrangeItemsWrap+exArrangeItemsHorizontal*/
		oToolBar:Items():ToString := "1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
200:
I've noticed that the toolbar is cut when perform scrolling. Is it possible to change that shape

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ArrangeItemsAs := 513/*exArrangeItemsScroll+exArrangeItemsHorizontal*/
		oToolBar:VisualAppearance():Add(1,"gBFLBCJwBAEHhEJAAEhIDhAxGAyg0HG0Og40HIyiwAGY1GMJiYAf8jAEhhUnAAyhEqg8hk0oAsIjYxHAwmYwHEbGY2GEhGkMlFBlAOhAJhEuoUHjcbGQ1EtMp0hGsbGowEsvpNBlkpo9ZoNQp8rqMIqdkqwCr1ZrdbrFpsFvs1hg9VuVCjdBA0IoElhFog6zbDykUkhsPms3nMInc9hA0mNpoVrruQpdiutNq9kqlWtuQg+Sluewufp1gqWbEt+0UK0F81YAuGkut01F3lF7vF6yYA1Ujf4ATjNd8KmeHh84n1MGI1zt9rN7vOhg+9knB4ejAE0m3HHHJlfL1VB5sH6G76m/63Ey2xAG0uMbkIbUDh3me1vjoV7vYIhBQNIxjoOo5DKGKQj8hAhCbA6ThshAUN0g7or4DCFCQ14AHATIAHkbBZt83xxFCDcMw3DsQRFEINm8SQAHydpuxTEh4GkUzfHATYARnGsPn+d5mk5HkPv4g7/QBAQyhk1UFgB" +;
		"BMloTBqDwe8iEQkg0KITCzXyDDhZxI30uRJFMXG7FYARTFLfR1MMRSDNUcSC30fE5IYASLAMBhmjZDQQJs9wZB0qQhCaFChC81g3M8RRuAE5IPMENRjDUdN8g8vw7MtJx5SseTHODCTpO0jp+hE/SZPqUSgAEpABCS9ytQkLyDTtPU2f8uUxGkg0dDtDxlXLCUPRMRxxRoAHW2wAICA==")
		oToolBar:SetProperty("Background",119/*exScrollViewBorder*/,0x1000000)
		oItems := oToolBar:Items()
			oItems:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
			oItem := oItems:Add("Expand",2)
				oItem:GroupPopup := 259/*exGroupPopupVertical+exNoGroupPopupFrame+exGroupPopup*/
				oItem:Check := .T.
				oItem:ShowPopupOnChecked := .T.
				oItems1 := oItem:Items()
					oItems1:Padding := "22,0,0,0"
					oItems1:Add("Radio 1"):Radio := .T.
					oItems1:Add("Radio 2"):Radio := .T.
					oItem1 := oItems1:Add("Radio 3")
						oItem1:Radio := .T.
						oItem1:Checked := .T.
				oItem:Checked := .T.
			oItems:Add(""):ToString := "Expand[typ=1][chk=1][spchk=-1][group=0x0103][itemspad=22,0,0,0](Radio 1[id=20][typ=2],Radio 2[id=30][typ=2],Radio 3[id=40][typ=2][chk=1])"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
199:
I've noticed that the toolbar is cut when perform scrolling. Is it possible to prevent that

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ArrangeItemsAs := 513/*exArrangeItemsScroll+exArrangeItemsHorizontal*/
		oToolBar:SetProperty("Background",119/*exScrollViewBorder*/,-1)
		oItems := oToolBar:Items()
			oItems:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
			oItem := oItems:Add("Expand",2)
				oItem:GroupPopup := 259/*exGroupPopupVertical+exNoGroupPopupFrame+exGroupPopup*/
				oItem:Check := .T.
				oItem:ShowPopupOnChecked := .T.
				oItems1 := oItem:Items()
					oItems1:Padding := "22,0,0,0"
					oItems1:Add("Radio 1"):Radio := .T.
					oItems1:Add("Radio 2"):Radio := .T.
					oItem1 := oItems1:Add("Radio 3")
						oItem1:Radio := .T.
						oItem1:Checked := .T.
				oItem:Checked := .T.
			oItems:Add(""):ToString := "Expand[typ=1][chk=1][spchk=-1][group=0x0103][itemspad=22,0,0,0](Radio 1[id=20][typ=2],Radio 2[id=30][typ=2],Radio 3[id=40][typ=2][chk=1])"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
198:
How can I scroll the items within the toolbar

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ArrangeItemsAs := 513/*exArrangeItemsScroll+exArrangeItemsHorizontal*/
		oItems := oToolBar:Items()
			oItems:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
			oItem := oItems:Add("Expand",2)
				oItem:GroupPopup := 259/*exGroupPopupVertical+exNoGroupPopupFrame+exGroupPopup*/
				oItem:Check := .T.
				oItem:ShowPopupOnChecked := .T.
				oItems1 := oItem:Items()
					oItems1:Padding := "22,0,0,0"
					oItems1:Add("Radio 1"):Radio := .T.
					oItems1:Add("Radio 2"):Radio := .T.
					oItem1 := oItems1:Add("Radio 3")
						oItem1:Radio := .T.
						oItem1:Checked := .T.
				oItem:Checked := .T.
			oItems:Add(""):ToString := "Expand[typ=1][chk=1][spchk=-1][group=0x0103][itemspad=22,0,0,0](Radio 1[id=20][typ=2],Radio 2[id=30][typ=2],Radio 3[id=40][typ=2][chk=1])"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
197:
How can I show an item aligned to the bottom size of the toolbar

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ArrangeItemsAs := 1/*exArrangeItemsHorizontal*/
		oToolBar:Items():ToString := "C1[chk],C2[chk]"
		oItem := oToolBar:Items():Add("R")
			oItem:Check := .T.
			oItem:Checked := .T.
			oItem:Y := "height - iheight"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
196:
How can I show an item aligned to the right of the toolbar

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ArrangeItemsAs := 1/*exArrangeItemsHorizontal*/
		oToolBar:Items():ToString := "C1[chk],C2[chk]"
		oItem := oToolBar:Items():Add("R")
			oItem:Check := .T.
			oItem:Checked := .T.
			oItem:X := "width - iwidth"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
195:
How can I arrange horizontally the items on the toolbar

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ArrangeItemsAs := 1/*exArrangeItemsHorizontal*/
		oItems := oToolBar:Items()
			oItem := oItems:Add("Expand",2)
				oItem:GroupPopup := 259/*exGroupPopupVertical+exNoGroupPopupFrame+exGroupPopup*/
				oItem:Check := .T.
				oItem:ShowPopupOnChecked := .T.
				oItems1 := oItem:Items()
					oItems1:Padding := "22,0,0,0"
					oItems1:Add("Radio 1"):Radio := .T.
					oItems1:Add("Radio 2"):Radio := .T.
					oItem1 := oItems1:Add("Radio 3")
						oItem1:Radio := .T.
						oItem1:Checked := .T.
				oItem:Checked := .T.
			oItems:Add(""):ToString := "Expand[typ=1][chk=1][spchk=-1][group=0x0103][itemspad=22,0,0,0](Radio 1[id=20][typ=2],Radio 2[id=30][typ=2],Radio 3[id=40][typ=2][chk=1])"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
194:
How can I display the drop down panel to a specified location only
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:PopupAppearance := 6/*ShadowBorder*/
		oItems := oToolBar:Items()
			oItem := oItems:Add("Popup",2,100)
				oItem:ShowPopupArrow := .F.
				oItem:ShowPopupAlign := 1/*exShowPopupAlignDown*/
				oItem:ShowPopupOffset := "0:screen,0:screen"
				oItems1 := oItem:Items()
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
193:
How can I displays the drop down bellow the control, rather than item itself

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:PopupAppearance := 6/*ShadowBorder*/
		oItems := oToolBar:Items()
			oItem := oItems:Add("Popup <b>1",2,100)
				oItem:ShowPopupArrow := .F.
				oItem:ShowPopupAlign := 1/*exShowPopupAlignDown*/
				oItem:ShowPopupOffset := "0,0:control"
				oItems1 := oItem:Items()
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
			oItem1 := oItems:Add("Popup <b>2",2,200)
				oItem1:GroupPopup := 1/*exGroupPopup*/
				oItems2 := oItem1:Items()
					oItems2:Add("Item 2")
					oItems2:Add("Item 3")
					oItems2:Add("Item 4")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
192:
How can I change the visual appearance of the progress bar

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oToolBar:SetProperty("Background",260/*0x104+*/,0x1000000)
		oItems := oToolBar:Items()
			oItem := oItems:Add("Progress")
				oItem:AllowEdit := 4/*exItemEditProgress*/
				oItem:EditWidth := -128
				oItem:EditValue := 25
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
191:
How can I change the progress's color

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SetProperty("Background",260/*0x104+*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oItems := oToolBar:Items()
			oItem := oItems:Add("Progress")
				oItem:AllowEdit := 4/*exItemEditProgress*/
				oItem:EditWidth := -128
				oItem:EditValue := 25
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
190:
I am using the Item.Visible property on False to hide the item, but the editor is still visible
PROCEDURE OnCheckItem(oToolBar,Itm)
	LOCAL oItem
	oItem := oToolBar:Items:Item(1000)
		oItem:Visible := .T.
		oItem:AllowEdit := 260/*exItemEditReadOnly+exItemEditProgress*/
	oToolBar:Refresh()
RETURN

PROCEDURE OnUncheckItem(oToolBar,Itm)
	LOCAL oItem
	oItem := oToolBar:Items:Item(1000)
		oItem:Visible := .F.
		oItem:AllowEdit := 0/*exItemDisableEdit*/
	oToolBar:Refresh()
RETURN

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:CheckItem := {|Itm| OnCheckItem(oToolBar,Itm)} /*Occurs when the user checks the item.*/
		oToolBar:UncheckItem := {|Itm| OnUncheckItem(oToolBar,Itm)} /*Occurs when the user unchecks the item.*/

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItems1 := oItem:Items()
					oItems1:Add("Visible")
					oItem1 := oItems1:Add("")
						oItem1:Check := .T.
						oItem1:Checked := .T.
					oItem2 := oItems1:Add("Item 2",,1000)
						oItem2:ItemHeight := 18
						oItem2:Caption := "Percent"
						oItem2:AllowEdit := 260/*exItemEditReadOnly+exItemEditProgress*/
						oItem2:EditValue := 50
						oItem2:Visible := .T.
					oItems1:Add("Visible")
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
189:
How can I change the color of a disabled item

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("Disabled",2,0)
				oItem:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
				oItem:Items():Add("")
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItem:ShowPopupArrow := .F.
			oItems:Add("Disabled"):Enabled := .F.
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
188:
Microsoft Windows 8.1 - Ribbon Like

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oItem,oItem1,oItem10,oItem11,oItem12,oItem13,oItem14,oItem15,oItem16,oItem17,oItem18,oItem2,oItem3,oItem4,oItem5,oItem6,oItem7,oItem8,oItem9,var_Item,var_Item1,var_Item2,var_Item3,var_Item4
	LOCAL oItems,oItems1,oItems10,oItems11,oItems12,oItems13,oItems2,oItems3,oItems4,oItems5,oItems6,oItems7,oItems8,oItems9
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:ToString := "[id=0][group=0x03](),[id=-99][bg=0x01000000][group=0x03][itemspad=4,4,4,4]([id=9000])"
			oItems1 := oItems:Item(0):Items()
				oItems1:Add("",0,0):Padding := "8,0,0,0"
				var_Item3 := oItems1:Add("New Page")
					var_Item3:ToString := "[id=0][typ=2][chk=1][spchk=-1][show=1][grp=10][bghot=0x12000000][bgsel=0x11000000][bgselhot=0x14000000][group=0x03][tab=9000][pad=4,0,4,0][popupoffset=-4,-1]([id=0][group=0x03]([id=0][group=0x03]))"
					var_Item3:ID := 200
					var_Item3:Caption := "Page1"
					var_Item3:ShowPopupAlign := 1/*exShowPopupAlignDown*/
					oItem := var_Item3:Items:Item(0)
						var_Item := oItem:Items:Add("New Group")
							var_Item:ToString := "[id=0][group=0x03][itemspad=4,4,4,18][itemsbg=0x02000000][itemsbghot=0x04000000]()"
							var_Item:Caption := "<b><font ;14>A"
							oItems2 := var_Item:Items()
								oItems2:BackgroundExt := "bottom[16,text=`<fgcolor A0A0A0><font ;8>Horizontal`,align=0x11]"
								oItem1 := oItems2:Add("",2)
									oItem1:GroupPopup := 17/*exGroupPopupEqualWidth+exGroupPopup*/
									oItem1:Caption := ""
									oItems3 := oItem1:Items()
										oItem2 := oItems3:Add("R1")
											oItem2:RadioGroup := 100
											oItem2:Radio := .T.
											oItem2:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
											oItem2:Checked := .F.
										oItem3 := oItems3:Add("R2")
											oItem3:RadioGroup := 100
											oItem3:Radio := .T.
											oItem3:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
											oItem3:Checked := .T.
										oItem4 := oItems3:Add("R3")
											oItem4:RadioGroup := 100
											oItem4:Radio := .T.
											oItem4:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
											oItem4:Checked := .F.
						var_Item1 := oItem:Items:Add("New Group")
							var_Item1:ToString := "[id=0][group=0x03][itemspad=4,4,4,18][itemsbg=0x02000000][itemsbghot=0x04000000]()"
							var_Item1:Caption := "<b><font ;14>B"
							oItems4 := var_Item1:Items()
								oItems4:BackgroundExt := "bottom[16,text=`<fgcolor A0A0A0><font ;8>Vertical`,align=0x11]"
								oItem5 := oItems4:Add("",2)
									oItem5:GroupPopup := 289/*exGroupPopupVertical+exGroupPopupEqualHeight+exGroupPopup*/
									oItem5:Caption := ""
									oItems5 := oItem5:Items()
										oItem6 := oItems5:Add("C1")
											oItem6:Check := .T.
											oItem6:Checked := .T.
										oItem7 := oItems5:Add("C2")
											oItem7:Check := .T.
											oItem7:Checked := .F.
										oItem8 := oItems5:Add("C3")
											oItem8:Check := .T.
											oItem8:Checked := .T.
						oItem:Items():Add("",0,0):Padding := "4,0,0,0"
						var_Item2 := oItem:Items:Add("New Group")
							var_Item2:ToString := "[id=0][group=0x03][itemspad=4,4,4,18][itemsbg=0x02000000][itemsbghot=0x04000000]()"
							var_Item2:Caption := ""
							oItems6 := var_Item2:Items()
								oItems6:BackgroundExt := "bottom[16,text=`<fgcolor A0A0A0><font ;8>Mixt`,align=0x11]"
								oItem9 := oItems6:Add("",0)
									oItem9:AllowEdit := 1027/*exItemEditVertical+exItemEditSlider*/
									oItem9:ItemHeight := 76
									oItem9:EditBorder := 0/*exEditBorderNone*/
									oItem9:EditValue := 25
								oItem10 := oItems6:Add("",2)
									oItem10:GroupPopup := 259/*exGroupPopupVertical+exNoGroupPopupFrame+exGroupPopup*/
									oItem10:Caption := ""
									oItems7 := oItem10:Items()
										oItem11 := oItems7:Add("",2)
											oItem11:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
											oItems8 := oItem11:Items()
												oItem12 := oItems8:Add("Button1",2)
													oItem12:ShowAsButton := 275/*exShowAsSelectButtonBottom+exShowAsButtonAutoSize*/
													oItems9 := oItem12:Items()
														oItems9:Add("Item 1")
														oItems9:Add("Item 2")
														oItems9:Add("Item 3")
												oItems8:Add("",0,0):Padding := "4,0,0,0"
												oItem13 := oItems8:Add("Button2",2)
													oItem13:ShowAsButton := 275/*exShowAsSelectButtonBottom+exShowAsButtonAutoSize*/
													oItems10 := oItem13:Items()
														oItems10:Add("Item 4")
														oItems10:Add("Item 5")
														oItems10:Add("Item 6")
										oItem14 := oItems7:Add("Popup",2)
											oItem14:Alignment := 1/*exCenter*/
											oItems11 := oItem14:Items()
												oItems11:Add("Item 7"):Check := .T.
												oItems11:Add("Item 8")
												oItems12 := oItems11:Add("Item 9",2):Items()
													oItems12:Add("Item 10")
													oItems12:Add("Item 11")
													oItems12:Add("Item 12")
				var_Item4 := oItems1:Add("New Page")
					var_Item4:ToString := "[id=0][typ=2][chk=0][spchk=-1][show=1][grp=10][bghot=0x12000000][bgsel=0x11000000][bgselhot=0x14000000][group=0x03][tab=9000][pad=4,0,4,0][popupoffset=-4,-1]([id=0][group=0x03]([id=0][group=0x03]))"
					var_Item4:ID := 300
					var_Item4:Caption := "Page2"
					var_Item4:ShowPopupAlign := 1/*exShowPopupAlignDown*/
					oItem15 := var_Item4:Items:Item(0)
						oItems13 := oItem15:Items()
							oItem16 := oItems13:Add("S1")
								oItem16:ItemHeight := 88
								oItem16:AllowEdit := 1540/*exItemEditVertical+exItemEditSpin+exItemEditProgress*/
								oItem16:EditValue := 25
							oItem17 := oItems13:Add("S2")
								oItem17:ItemHeight := 88
								oItem17:AllowEdit := 1540/*exItemEditVertical+exItemEditSpin+exItemEditProgress*/
								oItem17:EditValue := 50
							oItem18 := oItems13:Add("S3")
								oItem18:ItemHeight := 88
								oItem18:AllowEdit := 1540/*exItemEditVertical+exItemEditSpin+exItemEditProgress*/
								oItem18:EditValue := 75
				oItems1:Add("",0,0):Padding := "8,0,0,0"
		oToolBar:PopupFlatAppearance := .F.
		oAppearance := oToolBar:VisualAppearance()
			oAppearance:Add(1,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSFlat-Ribbon/msfr_background.ebn")
			oAppearance:Add(2,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSFlat-Ribbon/msfr_groupt.ebn")
			oAppearance:Add(12,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSFlat-Ribbon/msfr_hot.ebn")
			oAppearance:Add(14,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSFlat-Ribbon/msfr_select.ebn")
			oAppearance:Add(17,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSFlat-Ribbon/msfr_tab.ebn")
			oAppearance:Add(18,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSFlat-Ribbon/msfr_tabhot.ebn")
			oAppearance:Add(32,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSFlat-Ribbon/msfr_check0.ebn")
			oAppearance:Add(33,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSFlat-Ribbon/msfr_check1.ebn")
			oAppearance:Add(34,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSFlat-Ribbon/msfr_buttonu.ebn")
			oAppearance:Add(35,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSFlat-Ribbon/msfr_buttond.ebn")
		oToolBar:Appearance := 16777216/*0x1000000+*/
		oToolBar:SetProperty("Background",64/*exToolTipAppearance*/,oToolBar:Appearance())
		oToolBar:SetProperty("SelBackColor",0xe000000)
		oToolBar:SetProperty("Background",110/*exMenuHotBackColor*/,0xc000000)
		oToolBar:SetProperty("Background",112/*exMenuSelHotBackColor*/,0x23000000)
		oToolBar:SetProperty("Background",2/*0x2+*/,0x22000000)
		oToolBar:SetProperty("Background",3/*0x3+*/,0x23000000)
		oToolBar:SetProperty("Background",70/*exCheckBoxState0*/,0x20000000)
		oToolBar:SetProperty("Background",71/*exCheckBoxState1*/,0x21000000)
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
187:
Microsoft Paint - Ribbon Like

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oItem,oItem1,oItem10,oItem11,oItem12,oItem13,oItem14,oItem15,oItem16,oItem17,oItem18,oItem2,oItem3,oItem4,oItem5,oItem6,oItem7,oItem8,oItem9,var_Item,var_Item1,var_Item2,var_Item3,var_Item4
	LOCAL oItems,oItems1,oItems10,oItems11,oItems12,oItems13,oItems2,oItems3,oItems4,oItems5,oItems6,oItems7,oItems8,oItems9
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:ToString := "[id=0][group=0x03](),[id=-99][bg=0x01000000][group=0x03][itemspad=4,4,4,4]([id=9000])"
			oItems1 := oItems:Item(0):Items()
				oItems1:Add("",0,0):Padding := "8,0,0,0"
				var_Item3 := oItems1:Add("New Page")
					var_Item3:ToString := "[id=0][typ=2][chk=1][spchk=-1][show=1][grp=10][bghot=0x12000000][bgsel=0x11000000][bgselhot=0x14000000][group=0x03][tab=9000][pad=4,0,4,0][popupoffset=-4,-1]([id=0][group=0x03]([id=0][group=0x03]))"
					var_Item3:ID := 200
					var_Item3:Caption := "Page1"
					var_Item3:ShowPopupAlign := 1/*exShowPopupAlignDown*/
					oItem := var_Item3:Items:Item(0)
						var_Item := oItem:Items:Add("New Group")
							var_Item:ToString := "[id=0][group=0x03][itemspad=4,4,4,18][itemsbg=0x02000000][itemsbghot=0x04000000]()"
							var_Item:Caption := "<b><font ;14>A"
							oItems2 := var_Item:Items()
								oItems2:BackgroundExt := "bottom[16,text=`<fgcolor A0A0A0><font ;8>Horizontal`,align=0x11]"
								oItem1 := oItems2:Add("",2)
									oItem1:GroupPopup := 17/*exGroupPopupEqualWidth+exGroupPopup*/
									oItem1:Caption := ""
									oItems3 := oItem1:Items()
										oItem2 := oItems3:Add("R1")
											oItem2:RadioGroup := 100
											oItem2:Radio := .T.
											oItem2:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
											oItem2:Checked := .F.
										oItem3 := oItems3:Add("R2")
											oItem3:RadioGroup := 100
											oItem3:Radio := .T.
											oItem3:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
											oItem3:Checked := .T.
										oItem4 := oItems3:Add("R3")
											oItem4:RadioGroup := 100
											oItem4:Radio := .T.
											oItem4:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
											oItem4:Checked := .F.
						var_Item1 := oItem:Items:Add("New Group")
							var_Item1:ToString := "[id=0][group=0x03][itemspad=4,4,4,18][itemsbg=0x02000000][itemsbghot=0x04000000]()"
							var_Item1:Caption := "<b><font ;14>B"
							oItems4 := var_Item1:Items()
								oItems4:BackgroundExt := "bottom[16,text=`<fgcolor A0A0A0><font ;8>Vertical`,align=0x11]"
								oItem5 := oItems4:Add("",2)
									oItem5:GroupPopup := 289/*exGroupPopupVertical+exGroupPopupEqualHeight+exGroupPopup*/
									oItem5:Caption := ""
									oItems5 := oItem5:Items()
										oItem6 := oItems5:Add("C1")
											oItem6:Check := .T.
											oItem6:Checked := .T.
										oItem7 := oItems5:Add("C2")
											oItem7:Check := .T.
											oItem7:Checked := .F.
										oItem8 := oItems5:Add("C3")
											oItem8:Check := .T.
											oItem8:Checked := .T.
						oItem:Items():Add("",0,0):Padding := "4,0,0,0"
						var_Item2 := oItem:Items:Add("New Group")
							var_Item2:ToString := "[id=0][group=0x03][itemspad=4,4,4,18][itemsbg=0x02000000][itemsbghot=0x04000000]()"
							var_Item2:Caption := ""
							oItems6 := var_Item2:Items()
								oItems6:BackgroundExt := "bottom[16,text=`<fgcolor A0A0A0><font ;8>Mixt`,align=0x11]"
								oItem9 := oItems6:Add("",0)
									oItem9:AllowEdit := 1027/*exItemEditVertical+exItemEditSlider*/
									oItem9:ItemHeight := 76
									oItem9:EditBorder := 0/*exEditBorderNone*/
									oItem9:EditValue := 25
								oItem10 := oItems6:Add("",2)
									oItem10:GroupPopup := 259/*exGroupPopupVertical+exNoGroupPopupFrame+exGroupPopup*/
									oItem10:Caption := ""
									oItems7 := oItem10:Items()
										oItem11 := oItems7:Add("",2)
											oItem11:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
											oItems8 := oItem11:Items()
												oItem12 := oItems8:Add("Button1",2)
													oItem12:ShowAsButton := 275/*exShowAsSelectButtonBottom+exShowAsButtonAutoSize*/
													oItems9 := oItem12:Items()
														oItems9:Add("Item 1")
														oItems9:Add("Item 2")
														oItems9:Add("Item 3")
												oItems8:Add("",0,0):Padding := "4,0,0,0"
												oItem13 := oItems8:Add("Button2",2)
													oItem13:ShowAsButton := 275/*exShowAsSelectButtonBottom+exShowAsButtonAutoSize*/
													oItems10 := oItem13:Items()
														oItems10:Add("Item 4")
														oItems10:Add("Item 5")
														oItems10:Add("Item 6")
										oItem14 := oItems7:Add("Popup",2)
											oItem14:Alignment := 1/*exCenter*/
											oItems11 := oItem14:Items()
												oItems11:Add("Item 7"):Check := .T.
												oItems11:Add("Item 8")
												oItems12 := oItems11:Add("Item 9",2):Items()
													oItems12:Add("Item 10")
													oItems12:Add("Item 11")
													oItems12:Add("Item 12")
				var_Item4 := oItems1:Add("New Page")
					var_Item4:ToString := "[id=0][typ=2][chk=0][spchk=-1][show=1][grp=10][bghot=0x12000000][bgsel=0x11000000][bgselhot=0x14000000][group=0x03][tab=9000][pad=4,0,4,0][popupoffset=-4,-1]([id=0][group=0x03]([id=0][group=0x03]))"
					var_Item4:ID := 300
					var_Item4:Caption := "Page2"
					var_Item4:ShowPopupAlign := 1/*exShowPopupAlignDown*/
					oItem15 := var_Item4:Items:Item(0)
						oItems13 := oItem15:Items()
							oItem16 := oItems13:Add("S1")
								oItem16:ItemHeight := 88
								oItem16:AllowEdit := 1540/*exItemEditVertical+exItemEditSpin+exItemEditProgress*/
								oItem16:EditValue := 25
							oItem17 := oItems13:Add("S2")
								oItem17:ItemHeight := 88
								oItem17:AllowEdit := 1540/*exItemEditVertical+exItemEditSpin+exItemEditProgress*/
								oItem17:EditValue := 50
							oItem18 := oItems13:Add("S3")
								oItem18:ItemHeight := 88
								oItem18:AllowEdit := 1540/*exItemEditVertical+exItemEditSpin+exItemEditProgress*/
								oItem18:EditValue := 75
				oItems1:Add("",0,0):Padding := "8,0,0,0"
		oToolBar:PopupFlatAppearance := .F.
		oAppearance := oToolBar:VisualAppearance()
			oAppearance:Add(1,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_background.ebn")
			oAppearance:Add(2,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_groupt.ebn")
			oAppearance:Add(3,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_groupo.ebn")
			oAppearance:Add(4,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_grouphot.ebn")
			oAppearance:Add(5,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_frameh.ebn")
			oAppearance:Add(6,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_framehs.ebn")
			oAppearance:Add(7,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_framehi.ebn")
			oAppearance:Add(8,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_framehe.ebn")
			oAppearance:Add(9,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_framevs.ebn")
			oAppearance:Add(10,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_framevi.ebn")
			oAppearance:Add(11,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_frameve.ebn")
			oAppearance:Add(12,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_select.ebn")
			oAppearance:Add(13,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_bordert.ebn")
			oAppearance:Add(14,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_buttond.ebn")
			oAppearance:Add(15,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_buttonu.ebn")
			oAppearance:Add(16,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_tab.ebn")
			oAppearance:Add(17,"CP:16 0 0 0 1")
			oAppearance:Add(18,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_tabhot.ebn")
			oAppearance:Add(19,"C:/Program Files/Exontrol/ExToolBar/Sample/EBN/MSPaint-Ribbon/mspr_tabselhot.ebn")
			oAppearance:Add(20,"CP:19 0 0 0 1")
		oToolBar:LocalAppearance := 6/*ShadowBorder*/
		oToolBar:Appearance := 16777216/*0x1000000+*/
		oToolBar:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 21,66,139 } )  , .F. ))
		oToolBar:SetProperty("SelBackColor",0xe000000)
		oToolBar:SetProperty("Background",64/*exToolTipAppearance*/,oToolBar:Appearance())
		oToolBar:SetProperty("Background",2/*0x2+*/,0xd000000)
		oToolBar:SetProperty("Background",105/*exGroupPopupFrameSingle*/,0x5000000)
		oToolBar:SetProperty("Background",106/*exGroupPopupFrameHStart*/,0x6000000)
		oToolBar:SetProperty("Background",107/*exGroupPopupFrameHIntermediate*/,0x7000000)
		oToolBar:SetProperty("Background",108/*exGroupPopupFrameHEnd*/,0x8000000)
		oToolBar:SetProperty("Background",116/*exGroupPopupFrameVStart*/,0x9000000)
		oToolBar:SetProperty("Background",117/*exGroupPopupFrameVIntermediate*/,0xa000000)
		oToolBar:SetProperty("Background",118/*exGroupPopupFrameVEnd*/,0xb000000)
		oToolBar:SetProperty("Background",110/*exMenuHotBackColor*/,0xc000000)
		oToolBar:SetProperty("Background",112/*exMenuSelHotBackColor*/,0xf000000)
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
186:
Microsoft Office - Ribbon Like

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oItem,oItem1,oItem10,oItem11,oItem12,oItem13,oItem14,oItem15,oItem16,oItem17,oItem18,oItem2,oItem3,oItem4,oItem5,oItem6,oItem7,oItem8,oItem9,var_Item,var_Item1,var_Item2,var_Item3,var_Item4
	LOCAL oItems,oItems1,oItems10,oItems11,oItems12,oItems13,oItems2,oItems3,oItems4,oItems5,oItems6,oItems7,oItems8,oItems9
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:ToString := "[id=0][group=0x03](),[id=-99][bg=0x01000000][group=0x03][itemspad=4,4,4,4]([id=9000])"
			oItems1 := oItems:Item(0):Items()
				oItems1:Add("",0,0):Padding := "8,0,0,0"
				var_Item3 := oItems1:Add("New Page")
					var_Item3:ToString := "[id=0][typ=2][chk=1][spchk=-1][show=1][grp=10][bghot=0x12000000][bgsel=0x11000000][bgselhot=0x14000000][group=0x03][tab=9000][pad=4,0,4,0][popupoffset=-4,-1]([id=0][group=0x03]([id=0][group=0x03]))"
					var_Item3:ID := 200
					var_Item3:Caption := "Page1"
					var_Item3:ShowPopupAlign := 1/*exShowPopupAlignDown*/
					oItem := var_Item3:Items:Item(0)
						var_Item := oItem:Items:Add("New Group")
							var_Item:ToString := "[id=0][group=0x03][itemspad=4,4,4,18][itemsbg=0x02000000][itemsbghot=0x04000000]()"
							var_Item:Caption := "<b><font ;14>A"
							oItems2 := var_Item:Items()
								oItems2:BackgroundExt := "bottom[16,text=`<fgcolor A0A0A0><font ;8>Horizontal`,align=0x11]"
								oItem1 := oItems2:Add("",2)
									oItem1:GroupPopup := 17/*exGroupPopupEqualWidth+exGroupPopup*/
									oItem1:Caption := ""
									oItems3 := oItem1:Items()
										oItem2 := oItems3:Add("R1")
											oItem2:RadioGroup := 100
											oItem2:Radio := .T.
											oItem2:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
											oItem2:Checked := .F.
										oItem3 := oItems3:Add("R2")
											oItem3:RadioGroup := 100
											oItem3:Radio := .T.
											oItem3:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
											oItem3:Checked := .T.
										oItem4 := oItems3:Add("R3")
											oItem4:RadioGroup := 100
											oItem4:Radio := .T.
											oItem4:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
											oItem4:Checked := .F.
						var_Item1 := oItem:Items:Add("New Group")
							var_Item1:ToString := "[id=0][group=0x03][itemspad=4,4,4,18][itemsbg=0x02000000][itemsbghot=0x04000000]()"
							var_Item1:Caption := "<b><font ;14>B"
							oItems4 := var_Item1:Items()
								oItems4:BackgroundExt := "bottom[16,text=`<fgcolor A0A0A0><font ;8>Vertical`,align=0x11]"
								oItem5 := oItems4:Add("",2)
									oItem5:GroupPopup := 289/*exGroupPopupVertical+exGroupPopupEqualHeight+exGroupPopup*/
									oItem5:Caption := ""
									oItems5 := oItem5:Items()
										oItem6 := oItems5:Add("C1")
											oItem6:Check := .T.
											oItem6:Checked := .T.
										oItem7 := oItems5:Add("C2")
											oItem7:Check := .T.
											oItem7:Checked := .F.
										oItem8 := oItems5:Add("C3")
											oItem8:Check := .T.
											oItem8:Checked := .T.
						oItem:Items():Add("",0,0):Padding := "4,0,0,0"
						var_Item2 := oItem:Items:Add("New Group")
							var_Item2:ToString := "[id=0][group=0x03][itemspad=4,4,4,18][itemsbg=0x02000000][itemsbghot=0x04000000]()"
							var_Item2:Caption := ""
							oItems6 := var_Item2:Items()
								oItems6:BackgroundExt := "bottom[16,text=`<fgcolor A0A0A0><font ;8>Mixt`,align=0x11]"
								oItem9 := oItems6:Add("",0)
									oItem9:AllowEdit := 1027/*exItemEditVertical+exItemEditSlider*/
									oItem9:ItemHeight := 76
									oItem9:EditBorder := 0/*exEditBorderNone*/
									oItem9:EditValue := 25
								oItem10 := oItems6:Add("",2)
									oItem10:GroupPopup := 259/*exGroupPopupVertical+exNoGroupPopupFrame+exGroupPopup*/
									oItem10:Caption := ""
									oItems7 := oItem10:Items()
										oItem11 := oItems7:Add("",2)
											oItem11:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
											oItems8 := oItem11:Items()
												oItem12 := oItems8:Add("Button1",2)
													oItem12:ShowAsButton := 275/*exShowAsSelectButtonBottom+exShowAsButtonAutoSize*/
													oItems9 := oItem12:Items()
														oItems9:Add("Item 1")
														oItems9:Add("Item 2")
														oItems9:Add("Item 3")
												oItems8:Add("",0,0):Padding := "4,0,0,0"
												oItem13 := oItems8:Add("Button2",2)
													oItem13:ShowAsButton := 275/*exShowAsSelectButtonBottom+exShowAsButtonAutoSize*/
													oItems10 := oItem13:Items()
														oItems10:Add("Item 4")
														oItems10:Add("Item 5")
														oItems10:Add("Item 6")
										oItem14 := oItems7:Add("Popup",2)
											oItem14:Alignment := 1/*exCenter*/
											oItems11 := oItem14:Items()
												oItems11:Add("Item 7"):Check := .T.
												oItems11:Add("Item 8")
												oItems12 := oItems11:Add("Item 9",2):Items()
													oItems12:Add("Item 10")
													oItems12:Add("Item 11")
													oItems12:Add("Item 12")
				var_Item4 := oItems1:Add("New Page")
					var_Item4:ToString := "[id=0][typ=2][chk=0][spchk=-1][show=1][grp=10][bghot=0x12000000][bgsel=0x11000000][bgselhot=0x14000000][group=0x03][tab=9000][pad=4,0,4,0][popupoffset=-4,-1]([id=0][group=0x03]([id=0][group=0x03]))"
					var_Item4:ID := 300
					var_Item4:Caption := "Page2"
					var_Item4:ShowPopupAlign := 1/*exShowPopupAlignDown*/
					oItem15 := var_Item4:Items:Item(0)
						oItems13 := oItem15:Items()
							oItem16 := oItems13:Add("S1")
								oItem16:ItemHeight := 88
								oItem16:AllowEdit := 1540/*exItemEditVertical+exItemEditSpin+exItemEditProgress*/
								oItem16:EditValue := 25
							oItem17 := oItems13:Add("S2")
								oItem17:ItemHeight := 88
								oItem17:AllowEdit := 1540/*exItemEditVertical+exItemEditSpin+exItemEditProgress*/
								oItem17:EditValue := 50
							oItem18 := oItems13:Add("S3")
								oItem18:ItemHeight := 88
								oItem18:AllowEdit := 1540/*exItemEditVertical+exItemEditSpin+exItemEditProgress*/
								oItem18:EditValue := 75
				oItems1:Add("",0,0):Padding := "8,0,0,0"
		oToolBar:PopupFlatAppearance := .F.
		oAppearance := oToolBar:VisualAppearance()
			oAppearance:Add(1,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_background.ebn")
			oAppearance:Add(2,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_groupt.ebn")
			oAppearance:Add(3,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_groupo.ebn")
			oAppearance:Add(4,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_grouphot.ebn")
			oAppearance:Add(5,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_frameh.ebn")
			oAppearance:Add(6,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_framehs.ebn")
			oAppearance:Add(7,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_framehi.ebn")
			oAppearance:Add(8,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_framehe.ebn")
			oAppearance:Add(9,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_framevs.ebn")
			oAppearance:Add(10,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_framevi.ebn")
			oAppearance:Add(11,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_frameve.ebn")
			oAppearance:Add(12,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_select.ebn")
			oAppearance:Add(13,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_bordert.ebn")
			oAppearance:Add(14,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_buttond.ebn")
			oAppearance:Add(15,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_buttonu.ebn")
			oAppearance:Add(16,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_tab.ebn")
			oAppearance:Add(17,"CP:16 0 0 0 1")
			oAppearance:Add(18,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_tabhot.ebn")
			oAppearance:Add(19,"C:\Program Files\Exontrol\ExToolBar\Sample\EBN\MSOffice-Ribbon\msor_tabselhot.ebn")
			oAppearance:Add(20,"CP:19 0 0 0 1")
		oToolBar:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 21,66,139 } )  , .F. ))
		oToolBar:SetProperty("SelBackColor",0xe000000)
		oToolBar:LocalAppearance := 6/*ShadowBorder*/
		oToolBar:Appearance := 16777216/*0x1000000+*/
		oToolBar:SetProperty("Background",64/*exToolTipAppearance*/,oToolBar:Appearance())
		oToolBar:SetProperty("Background",2/*0x2+*/,0xd000000)
		oToolBar:SetProperty("Background",105/*exGroupPopupFrameSingle*/,0x5000000)
		oToolBar:SetProperty("Background",106/*exGroupPopupFrameHStart*/,0x6000000)
		oToolBar:SetProperty("Background",107/*exGroupPopupFrameHIntermediate*/,0x7000000)
		oToolBar:SetProperty("Background",108/*exGroupPopupFrameHEnd*/,0x8000000)
		oToolBar:SetProperty("Background",116/*exGroupPopupFrameVStart*/,0x9000000)
		oToolBar:SetProperty("Background",117/*exGroupPopupFrameVIntermediate*/,0xa000000)
		oToolBar:SetProperty("Background",118/*exGroupPopupFrameVEnd*/,0xb000000)
		oToolBar:SetProperty("Background",110/*exMenuHotBackColor*/,0xc000000)
		oToolBar:SetProperty("Background",112/*exMenuSelHotBackColor*/,0xf000000)
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
185:
How I can assign buttons to a tab

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1
	LOCAL oItems,oItems1,oItems2,oItems3
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SetProperty("Background",102/*exMenuSelBorderColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oItems := oToolBar:Items()
			oItems:ToString := "[id=0][group=0x0103][itemspad=4,4,4,4]([id=-10][group=0x03](),[id=-99][bg=RGB(240,240,240)][group=0x03][itemspad=4,4,4,4]([id=-100]))"
			oItems1 := oItems:Item(-10):Items()
				oItems1:Add("",0,0):Padding := "8,0,0,0"
				oItem := oItems1:Add("New Page")
					oItem:ToString := "[typ=2][chk=1][spchk=-1][show=1][grp=10][bghot=RGB(255,255,255)][bgsel=RGB(240,240,240)][bgselhot=RGB(240,240,240)][height=16][group=0x03][tab=-100][pad=2,0,2,0][popupalign=0x01]([id=0][group=0x03]([]))"
					oItem:Caption := "Page<off -5><font ;5><b>1</b></font></off>"
					oItem:ID := -1000
					oItems2 := oItem:Items:Item(0):Items()
						oItems2:Add("Button 1"):ShowAsButton := 3/*exShowAsButtonAutoSize+exShowAsButton*/
						oItems2:Add("Button 2"):ShowAsButton := 3/*exShowAsButtonAutoSize+exShowAsButton*/
						oItems2:Add("Button 3"):ShowAsButton := 3/*exShowAsButtonAutoSize+exShowAsButton*/
				oItem1 := oItems1:Add("New Page")
					oItem1:ToString := "[typ=2][chk=0][spchk=-1][show=1][grp=10][bghot=RGB(255,255,255)][bgsel=RGB(240,240,240)][bgselhot=RGB(240,240,240)][height=16][group=0x03][tab=-100][pad=2,0,2,0][popupalign=0x01]([id=0][group=0x03]([]))"
					oItem1:Caption := "Page<off -5><font ;5><b>2</b></font></off>"
					oItem1:ID := -1001
					oItems3 := oItem1:Items:Item(0):Items()
						oItems3:Add("Button 3"):ShowAsButton := 3/*exShowAsButtonAutoSize+exShowAsButton*/
						oItems3:Add("Button 4"):ShowAsButton := 3/*exShowAsButtonAutoSize+exShowAsButton*/
				oItems1:Add("",0,0):Padding := "8,0,0,0"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
184:
How can I hide an item

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:Add("Item 1"):Visible := .F.
			oItems:Add("Item 2")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
183:
How do I quickly load items into the control

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ToString := "Check 1[chk],Check 2[chk=1]"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
182:
Are there any functions to get the size/width/height of the control so all items fit the control's client area

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:Add("Item 1")
			oItems:Add("Item 2")
		oToolBar:Refresh()
		DevOut( Transform(oToolBar:RequiredWidth(),"") )
		DevOut( Transform(oToolBar:RequiredHeight(),"") )

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
181:
How do I get the item giving its caption

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:Add("Item 1"):ID := 1000
			oItems:Add("Item 2"):ID := 1001
		oToolBar:Item("Item 1"):Bold := .T.
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
180:
How do I get the item giving its identifier

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:Add("Item 1"):ID := 1000
			oItems:Add("Item 2"):ID := 1001
		oToolBar:Item(1000):Bold := .T.
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
179:
Can I change the cursor where it hovers the item

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:Cursor := "exCross"
		oItems := oToolBar:Items()
			oItems:Add("Item 1")
			oItems:Add("Item 2"):Cursor := "exNoDrop"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
178:
I am using radio-buttons, the question is it possible to uncheck the radio-buttons, so no button is pressed in the group

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2
	LOCAL oItems
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:AllowToggleRadio := .T.
		oItems := oToolBar:Items()
			oItem := oItems:Add("Radio 1",,1000)
				oItem:Radio := .T.
				oItem:RadioGroup := 100
			oItem1 := oItems:Add("Radio 2",,1001)
				oItem1:Radio := .T.
				oItem1:RadioGroup := 100
			oItem2 := oItems:Add("Radio 2",,1003)
				oItem2:Radio := .T.
				oItem2:RadioGroup := 100
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
177:
Is it possible to display the item's identifiers

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:Debug := .T.
		oItems := oToolBar:Items()
			oItems:Add("Item 1"):ID := 10001
			oItems:Add("Item 2"):ID := 10002
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
176:
How do I disable showing the tooltip for all control (method 2)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:AllowToolTip := .F.
		oItems := oToolBar:Items()
			oItems:Add("Item"):Tooltip := "this is a bit of text to be shown when cursor hovers it"
			oItems:Add("Item"):Tooltip := "this is a bit of text to be shown when cursor hovers it"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
175:
How can I lock the control, so no events occur, but no shown in gray as Enabled do

PROCEDURE OnSelectItem(oToolBar,Itm)
	DevOut( "SelectItem should not be fired while locked" )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SelectItem := {|Itm| OnSelectItem(oToolBar,Itm)} /*Occurs when the user selects the item.*/

		oToolBar:Locked := .T.
		oItems := oToolBar:Items()
			oItems:Add("Disabled"):Enabled := .F.
			oItems:Add("Item 2")
			oItems:Add("Item 3")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
174:
How can I disable the control

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:Enabled := .F.
		oItems := oToolBar:Items()
			oItems:Add("Disabled"):Enabled := .F.
			oItems:Add("Item 2")
			oItems:Add("Item 3")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
173:
How can I specify a different border/visual appearance for drop down portion of the popup menu (ebn)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oToolBar:PopupAppearance := 16777216/*0x1000000+*/
		oItems := oToolBar:Items()
			oItems1 := oItems:Add("Popup 1",2):Items()
				oItems1:Add("Item 1"):Check := .T.
				oItems1:Add("Item 2"):Check := .T.
				oItems1:Add("Item 3"):Check := .T.
			oItems2 := oItems:Add("Popup 2",2):Items()
				oItems2:Add("Item 4"):Check := .T.
				oItems2:Add("Item 5"):Check := .T.
				oItems2:Add("Item 6"):Check := .T.
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
172:
How can I specify a different border for drop down portion of the popup menu

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:PopupAppearance := 6/*ShadowBorder*/
		oItems := oToolBar:Items()
			oItems1 := oItems:Add("Popup 1",2):Items()
				oItems1:Add("Item 1"):Check := .T.
				oItems1:Add("Item 2"):Check := .T.
				oItems1:Add("Item 3"):Check := .T.
			oItems2 := oItems:Add("Popup 2",2):Items()
				oItems2:Add("Item 4"):Check := .T.
				oItems2:Add("Item 5"):Check := .T.
				oItems2:Add("Item 6"):Check := .T.
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
171:
How can I specify a different border/visual appearance for drop down portion of the select buttons/combobox (ebn)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2
	LOCAL oItems,oItems1,oItems2,oItems3
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oToolBar:LocalAppearance := 16777216/*0x1000000+*/
		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Button",2)
						oItem1:ShowAsButton := 275/*exShowAsSelectButtonBottom+exShowAsButtonAutoSize*/
						oItems2 := oItem1:Items()
							oItems2:Add("Item 1")
							oItems2:Add("Item 2")
							oItems2:Add("Item 3")
					oItem2 := oItems1:Add("Button",2)
						oItem2:ShowAsButton := 275/*exShowAsSelectButtonBottom+exShowAsButtonAutoSize*/
						oItems3 := oItem2:Items()
							oItems3:Add("Item 4")
							oItems3:Add("Item 5")
							oItems3:Add("Item 6")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
170:
How can I specify a different border for drop down portion of the select buttons/combobox

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2
	LOCAL oItems,oItems1,oItems2,oItems3
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:LocalAppearance := 6/*ShadowBorder*/
		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Button",2)
						oItem1:ShowAsButton := 275/*exShowAsSelectButtonBottom+exShowAsButtonAutoSize*/
						oItems2 := oItem1:Items()
							oItems2:Add("Item 1")
							oItems2:Add("Item 2")
							oItems2:Add("Item 3")
					oItem2 := oItems1:Add("Button",2)
						oItem2:ShowAsButton := 275/*exShowAsSelectButtonBottom+exShowAsButtonAutoSize*/
						oItems3 := oItem2:Items()
							oItems3:Add("Item 4")
							oItems3:Add("Item 5")
							oItems3:Add("Item 6")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
169:
How can I change the visual appearance for the entire control

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oToolBar:Appearance := 16777216/*0x1000000+*/
		oToolBar:ShowCheckedAsSelected := -1/*exDisplayItemCheckHighlight*/
		oItems := oToolBar:Items()
			oItems:Padding := "4,4,4,4"
			oItem := oItems:Add("Radio 1")
				oItem:Radio := .T.
				oItem:Checked := .T.
			oItems:Add("Radio 2"):Radio := .T.
			oItems:Add("Radio 3"):Radio := .T.
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
168:
How can I show a border arround the control
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1
	LOCAL oItems
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:Appearance := 1/*FlatBorder*/
		oToolBar:ShowCheckedAsSelected := -1/*exDisplayItemCheckHighlight*/
		oItems := oToolBar:Items()
			oItems:Padding := "4,4,4,4"
			oItem := oItems:Add("Check 1")
				oItem:Checked := .T.
				oItem:Check := .T.
			oItem1 := oItems:Add("Check 2")
				oItem1:Check := .T.
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
167:
Is it possible to change the item's background color when check/uncheck the item

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1
	LOCAL oItems
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ShowCheckedAsSelected := -1/*exDisplayItemCheckHighlight*/
		oItems := oToolBar:Items()
			oItems:Padding := "4,4,4,4"
			oItem := oItems:Add("Check 1")
				oItem:Checked := .T.
				oItem:Check := .T.
			oItem1 := oItems:Add("Check 2")
				oItem1:Check := .T.
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
166:
How can I change the colors for hot/hover items

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1
	LOCAL oItems
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SetProperty("Background",110/*exMenuHotBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,1 } )  , .F. ))
		oToolBar:SetProperty("Background",111/*exMenuHotForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oToolBar:SetProperty("Background",112/*exMenuSelHotBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oToolBar:SetProperty("Background",113/*exMenuSelHotForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oToolBar:SetProperty("SelBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oToolBar:SetProperty("SelForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oToolBar:SetProperty("Background",102/*exMenuSelBorderColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oToolBar:ShowCheckedAsSelected := -1/*exDisplayItemCheckHighlight*/
		oItems := oToolBar:Items()
			oItems:Padding := "4,4,4,4"
			oItems:Add(""):ToString := "[group=3](Item 1,Item 2)"
			oItem := oItems:Add("Check 1")
				oItem:Checked := .T.
				oItem:Check := .T.
			oItem1 := oItems:Add("Check 2")
				oItem1:Check := .T.
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
165:
How do I change the visual appearance of the groups (vertical)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oItem,oItem1,oItem2
	LOCAL oItems,oItems1,oItems2,oItems3
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oAppearance := oToolBar:VisualAppearance()
			oAppearance:Add(1,"c:\exontrol\images\normal.ebn")
			oAppearance:Add(2,"c:\exontrol\images\pushed.ebn")
			oAppearance:Add(3,"c:\exontrol\images\hot.ebn")
		oToolBar:SetProperty("Background",105/*exGroupPopupFrameSingle*/,0x1000000)
		oToolBar:SetProperty("Background",116/*exGroupPopupFrameVStart*/,0x1000000)
		oToolBar:SetProperty("Background",117/*exGroupPopupFrameVIntermediate*/,0x2000000)
		oToolBar:SetProperty("Background",118/*exGroupPopupFrameVEnd*/,0x3000000)
		oToolBar:SetProperty("Background",109/*exGroupPopupFrameSolid*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Vertical",2)
						oItem1:Alignment := 1/*exCenter*/
						oItem1:GroupPopup := 257/*exGroupPopupVertical+exGroupPopup*/
						oItems2 := oItem1:Items()
							oItems2:Add("Item 1")
							oItems2:Add("Item 2")
							oItems2:Add("Item 3")
							oItems2:Add("Item 4")
							oItems2:Add("Item 5")
					oItems1:Add(""):CaptionWidth := 12
					oItem2 := oItems1:Add("Vertical",2)
						oItem2:Alignment := 1/*exCenter*/
						oItem2:GroupPopup := 449/*exGroupPopupVertical+exGroupPopupFrameThickBox+exGroupPopupFrameSolidBox+exGroupPopup*/
						oItems3 := oItem2:Items()
							oItems3:Add("Item 1")
							oItems3:Add("Item 2")
							oItems3:Add("Item 3")
							oItems3:Add("Item 4")
							oItems3:Add("Item 5")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
164:
How do I change the visual appearance of the groups (horizontal)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oAppearance := oToolBar:VisualAppearance()
			oAppearance:Add(1,"c:\exontrol\images\normal.ebn")
			oAppearance:Add(2,"c:\exontrol\images\pushed.ebn")
			oAppearance:Add(3,"c:\exontrol\images\hot.ebn")
		oToolBar:SetProperty("Background",105/*exGroupPopupFrameSingle*/,0x1000000)
		oToolBar:SetProperty("Background",106/*exGroupPopupFrameHStart*/,0x1000000)
		oToolBar:SetProperty("Background",107/*exGroupPopupFrameHIntermediate*/,0x2000000)
		oToolBar:SetProperty("Background",108/*exGroupPopupFrameHEnd*/,0x3000000)
		oToolBar:SetProperty("Background",109/*exGroupPopupFrameSolid*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oItems := oToolBar:Items()
			oItem := oItems:Add("Horizontal Group",2)
				oItem:GroupPopup := 1/*exGroupPopup*/
				oItems1 := oItem:Items()
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
					oItems1:Add("Item 4")
					oItems1:Add("Item 5")
			oItems:Add(""):ToString := "Horizontal Group[group=193](Item 1,Item 2,Item 3,Item 4,Item 5)"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
163:
How can I change the visual appearance of the separator item

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oToolBar:SetProperty("Background",103/*exMenuSeparatorItem*/,0x1000000)
		oItems := oToolBar:Items()
			oItems:Add("Item"):CaptionWidth := 128
			oItems:Add("",1)
			oItems:Add("Item"):CaptionWidth := 128
			oItems:Add(""):ToString := "<font ;5>separator[sep]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
162:
How can I change the visual appearance of the drop down of the control (normal.2)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oAppearance := oToolBar:VisualAppearance()
			oAppearance:Add(1,"c:\exontrol\images\normal.ebn")
			oAppearance:Add(2,"c:\exontrol\images\pushed.ebn")
		oToolBar:PopupFlatImageWidth := 0
		oItems := oToolBar:Items()
			oItems1 := oItems:Add("Popup",2):Items()
				oItems1:Add("Item 1"):Check := .T.
				oItems1:Add("Item 2"):Check := .T.
				oItems1:Add("Item 3"):Check := .T.
				oItems1:PopupAppearance := 16777216/*0x1000000+*/
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
161:
How can I change the visual appearance of the drop down of the control (normal.1)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oAppearance := oToolBar:VisualAppearance()
			oAppearance:Add(1,"c:\exontrol\images\normal.ebn")
			oAppearance:Add(2,"c:\exontrol\images\pushed.ebn")
		oToolBar:PopupFlatAppearance := .F.
		oItems := oToolBar:Items()
			oItems1 := oItems:Add("Popup",2):Items()
				oItems1:Add("Item 1"):Check := .T.
				oItems1:Add("Item 2"):Check := .T.
				oItems1:Add("Item 3"):Check := .T.
				oItems1:PopupAppearance := 16777216/*0x1000000+*/
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
160:
How can I change the visual appearance of the drop down of the control (flat)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oAppearance := oToolBar:VisualAppearance()
			oAppearance:Add(1,"c:\exontrol\images\normal.ebn")
			oAppearance:Add(2,"c:\exontrol\images\pushed.ebn")
		oToolBar:SetProperty("PopupFlatBackColor",0x2000000)
		oToolBar:SetProperty("Background",100/*exMenuFlatLineColor*/,oToolBar:PopupFlatBackColor())
		oItems := oToolBar:Items()
			oItems1 := oItems:Add("Popup",2):Items()
				oItems1:Add("Item 1"):Check := .T.
				oItems1:Add("Item 2"):Check := .T.
				oItems1:Add("Item 3"):Check := .T.
				oItems1:PopupAppearance := 16777216/*0x1000000+*/
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
159:
How can I change the visual appearance of the flat portion of the drop down of the control

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oToolBar:SetProperty("PopupFlatBackColor",0x1000000)
		oToolBar:SetProperty("Background",100/*exMenuFlatLineColor*/,oToolBar:PopupFlatBackColor())
		oItems := oToolBar:Items()
			oItems1 := oItems:Add("Popup",2):Items()
				oItems1:Add("Item 1"):Check := .T.
				oItems1:Add("Item 2"):Check := .T.
				oItems1:Add("Item 3"):Check := .T.
				oItems1:PopupAppearance := 6/*ShadowBorder*/
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
158:
How can I change the visual appearance of the radio-buttons to be displayed in the toolbar control (ebn)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oItem,oItem1,oItem2,oItem3
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oAppearance := oToolBar:VisualAppearance()
			oAppearance:Add(1,"c:\exontrol\images\normal.ebn")
			oAppearance:Add(2,"c:\exontrol\images\pushed.ebn")
		oToolBar:SetProperty("Background",73/*exRadioButtonState0*/,0x1000000)
		oToolBar:SetProperty("Background",74/*exRadioButtonState1*/,0x2000000)
		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 1/*exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Radio 1",,1000)
						oItem1:Radio := .T.
						oItem1:RadioGroup := 100
					oItem2 := oItems1:Add("Radio 2",,1001)
						oItem2:Radio := .T.
						oItem2:RadioGroup := 100
					oItem3 := oItems1:Add("Radio 2",,1003)
						oItem3:Radio := .T.
						oItem3:RadioGroup := 100
					oItems1:Item(1000):Checked := .T.
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
157:
How can I change the visual appearance of the check-boxes to be displayed in the toolbar control (ebn)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oItem,oItem1
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oAppearance := oToolBar:VisualAppearance()
			oAppearance:Add(1,"c:\exontrol\images\normal.ebn")
			oAppearance:Add(2,"c:\exontrol\images\pushed.ebn")
		oToolBar:SetProperty("Background",70/*exCheckBoxState0*/,0x1000000)
		oToolBar:SetProperty("Background",71/*exCheckBoxState1*/,0x2000000)
		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Check 1")
						oItem1:Check := .T.
						oItem1:Checked := .T.
					oItems1:Add("Check 2"):Check := .T.
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
156:
How can I change the visual appearance of the tooltips to be displayed in the toolbar control (ebn)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oItems
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oAppearance := oToolBar:VisualAppearance()
			oAppearance:Add(1,"c:\exontrol\images\normal.ebn")
			oAppearance:Add(2,"c:\exontrol\images\pushed.ebn")
		oToolBar:ToolTipDelay := 1
		oToolBar:SetProperty("Background",64/*exToolTipAppearance*/,0x1000000)
		oToolBar:SetProperty("Background",66/*exToolTipForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oItems := oToolBar:Items()
			oItems:Add("Item"):Tooltip := "this is a bit of text to be shown when cursor hovers it"
			oItems:Add("Item"):Tooltip := "this is a bit of text to be shown when cursor hovers it"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
155:
Is it possible to change the visual appearance of the buttons to be displayed in the toolbar control (ebn)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oItem,oItem1,oItem2,oItem3
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oAppearance := oToolBar:VisualAppearance()
			oAppearance:Add(1,"c:\exontrol\images\normal.ebn")
			oAppearance:Add(2,"c:\exontrol\images\pushed.ebn")
		oToolBar:SetProperty("Background",2/*0x2+*/,0x1000000)
		oToolBar:SetProperty("Background",3/*0x3+*/,0x2000000)
		oToolBar:SetProperty("Background",114/*exMenuSeparatorSelectButton*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oToolBar:SetProperty("Background",115/*exMenuSeparatorSelectButtonBottom*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,255 } )  , .F. ))
		oItems := oToolBar:Items()
			oItems:Padding := "4,4,4,4"
			oItems:Add("Button"):ShowAsButton := 3/*exShowAsButtonAutoSize+exShowAsButton*/
			oItem := oItems:Add("")
				oItem:Enabled := .F.
				oItem:ItemHeight := 4
			oItem1 := oItems:Add("Button",2)
				oItem1:ShowAsButton := 275/*exShowAsSelectButtonBottom+exShowAsButtonAutoSize*/
				oItems1 := oItem1:Items()
					oItems1:PopupAppearance := 6/*ShadowBorder*/
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
			oItem2 := oItems:Add("")
				oItem2:Enabled := .F.
				oItem2:ItemHeight := 4
			oItem3 := oItems:Add("Button",2)
				oItem3:ShowAsButton := 19/*exShowAsSelectButton+exShowAsButtonAutoSize*/
				oItems2 := oItem3:Items()
					oItems2:PopupAppearance := 6/*ShadowBorder*/
					oItems2:Add("Item 1")
					oItems2:Add("Item 2")
					oItems2:Add("Item 3")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
154:
I've seen that the width of the tooltip is variable. Can I make it larger

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ToolTipWidth := 328
		oItems := oToolBar:Items()
			oItems:Add("Item"):Tooltip := "this is a bit of text to be shown when cursor hovers it"
			oItems:Add("Item"):Tooltip := "this is a bit of text to be shown when cursor hovers it"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
153:
How do I disable showing the tooltip for all control (method 1)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ToolTipDelay := 0
		oItems := oToolBar:Items()
			oItems:Add("Item"):Tooltip := "this is a bit of text to be shown when cursor hovers it"
			oItems:Add("Item"):Tooltip := "this is a bit of text to be shown when cursor hovers it"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
152:
How do I let the tooltip being displayed longer

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ToolTipPopDelay := 10000
		oItems := oToolBar:Items()
			oItems:Add("Item"):Tooltip := "this is a bit of text to be shown when cursor hovers it"
			oItems:Add("Item"):Tooltip := "this is a bit of text to be shown when cursor hovers it"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
151:
How do I show the tooltip quicker

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ToolTipDelay := 1
		oItems := oToolBar:Items()
			oItems:Add("Item"):Tooltip := "this is a bit of text to be shown when cursor hovers it"
			oItems:Add("Item"):Tooltip := "this is a bit of text to be shown when cursor hovers it"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
150:
How can I get the version of the control I am running

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		DevOut( oToolBar:Version() )

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
149:
How can I align the picture on the control's background

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:Picture := oToolBar:ExecuteTemplate("loadpicture(`c:\exontrol\images\card.png`)")
		oToolBar:PictureDisplay := 2/*UpperRight*/
		oItems := oToolBar:Items()
			oItems:Add("Item")
			oItems:Add("Item")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
148:
Is it possible to place a picture on the control's background

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:Picture := oToolBar:ExecuteTemplate("loadpicture(`c:\exontrol\images\card.png`)")
		oItems := oToolBar:Items()
			oItems:Add("Item")
			oItems:Add("Item")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
147:
How can I display the item using a different font/size

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:Add(""):Caption := "<font ;14>This is a bit of text"
			oItems:Add("<font ;6>This is a bit of text")
			oItems:Add(""):Caption := "<font Times New Roman;22>This is a bit of text</font>. Default"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
146:
How can I use the Event event, available for /COM version

PROCEDURE OnEvent(oToolBar,EventID)
	DevOut( "Event" )
	DevOut( Transform(oToolBar:EventParam(-2),"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

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

		oItems := oToolBar:Items()
			oItems:Add("Check"):Check := .T.
			oItem := oItems:Add("Slider")
				oItem:AllowEdit := 3/*exItemEditSlider*/
				oItem:EditWidth := 128
				oItem:EditBorder := 0/*exEditBorderNone*/
				oItem:EditValue := 25
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
145:
Is it possible to get notified once the user edits the field, or change the slider value

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( "EditChange event on Itm object" )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oItems := oToolBar:Items()
			oItem := oItems:Add("Item")
				oItem:AllowEdit := 3/*exItemEditSlider*/
				oItem:EditWidth := 128
				oItem:EditBorder := 0/*exEditBorderNone*/
				oItem:EditValue := 25
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
144:
How do I get notified once I uncheck an item

PROCEDURE OnUncheckItem(oToolBar,Itm)
	DevOut( "UncheckItem event on Itm object" )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:UncheckItem := {|Itm| OnUncheckItem(oToolBar,Itm)} /*Occurs when the user unchecks the item.*/

		oItems := oToolBar:Items()
			oItems:Add("Item"):Check := .T.
			oItems:Add("Item"):Check := .T.
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
143:
How do I get notified once I check an item

PROCEDURE OnCheckItem(oToolBar,Itm)
	DevOut( "CheckItem event on Itm object" )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:CheckItem := {|Itm| OnCheckItem(oToolBar,Itm)} /*Occurs when the user checks the item.*/

		oItems := oToolBar:Items()
			oItems:Add("Item"):Check := .T.
			oItems:Add("Item"):Check := .T.
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
142:
How do I get notified once I click/select an item

PROCEDURE OnSelectItem(oToolBar,Itm)
	DevOut( "SelectItem event on Itm object" )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SelectItem := {|Itm| OnSelectItem(oToolBar,Itm)} /*Occurs when the user selects the item.*/

		oItems := oToolBar:Items()
			oItems:Add("Item")
			oItems:Add("Item")
		oToolBar:Refresh()

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

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:PopupFlatAppearance := .F.
		oItems := oToolBar:Items()
			oItems:Padding := "2,12,2,2"
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
			oItems:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
			oItems:BackgroundExt := "root[pattern=0x000,frame=RGB(128,128,128)](top[2],top[10,text=`<font ;6><fgcolor 808080> group </font></fgcolor>`,align=0x11])"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
140:
How can I display the drop down popup to a different position ( method 2 )

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("Popup",2,100)
				oItem:ShowPopupAlign := 1/*exShowPopupAlignDown*/
				oItem:ShowPopupArrow := .F.
				oItem:ShowPopupOffset := "-12,-48"
				oItems1 := oItem:Items()
					oItems1:PopupAppearance := 3/*RaisedBorder*/
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
139:
How can I display the drop down popup to a different position ( method 1 )

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2
	LOCAL oItems,oItems1,oItems2,oItems3
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 1/*exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Popup 1",2,100)
						oItem1:ShowPopupAlign := 1/*exShowPopupAlignDown*/
						oItem1:ShowPopupArrow := .F.
						oItems2 := oItem1:Items()
							oItems2:PopupAppearance := 3/*RaisedBorder*/
							oItems2:Add("Item 1")
							oItems2:Add("Item 2")
							oItems2:Add("Item 3")
					oItem2 := oItems1:Add("Popup 2",2,200)
						oItem2:ShowPopupAt := 100
						oItem2:ShowPopupArrow := .F.
						oItems3 := oItem2:Items()
							oItems3:PopupAppearance := 3/*RaisedBorder*/
							oItems3:Add("Item 4")
							oItems3:Add("Item 5")
							oItems3:Add("Item 6")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
138:
Is it possible to show the popup bellow to the item, rather than on the right side

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("Popup",2)
				oItem:ShowPopupAlign := 1/*exShowPopupAlignDown*/
				oItem:ShowPopupArrow := .F.
				oItems1 := oItem:Items()
					oItems1:PopupAppearance := 1/*FlatBorder*/
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
			oItems:Add(""):ToString := "Popup[arrow=0][popupalign=1][popupapp=1](Item 1,Item 2,Item 3)"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
137:
How can I change the visual appearance for items, when cursor hovers it (hot,EBN)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItems1:SetProperty("HotBackColor",0x1000000)
					oItems1:Padding := "4,8,4,8"
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
			oItems:Add(""):ToString := "[group=0x03][itemspad=4,8,4,8][itemsbghot=0x1000000](Item 1,Item 2,Item 3)"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
136:
How can I change the background color for items, when cursor hovers it (hot)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItems1:SetProperty("HotBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
					oItems1:Padding := "0,8,0,8"
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
			oItems:Add(""):ToString := "[group=0x03][itemspad=0,8,0,8][itemsbghot=RGB(255,0,0)](Item 1,Item 2,Item 3)"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
135:
How can I change the visual appearance for items (EBN)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItems1:SetProperty("BackColor",0x1000000)
					oItems1:Padding := "4,8,4,8"
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
			oItems:Add(""):ToString := "[group=0x03][itemspad=4,8,4,8][itemsbg=0x1000000](Item 1,Item 2,Item 3)"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
134:
How can I change the background color for items

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItems1:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
					oItems1:Padding := "0,8,0,8"
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
			oItems:Add(""):ToString := "[group=0x03][itemspad=0,8,0,8][itemsbg=RGB(255,0,0)](Item 1,Item 2,Item 3)"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
133:
Is it possible to hide the popup's arrow

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("Popup",2)
				oItem:ShowPopupArrow := .F.
				oItems1 := oItem:Items()
					oItems1:PopupAppearance := 6/*ShadowBorder*/
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
			oItems:Add(""):ToString := "Popup[arrow=0][popupapp=6](Item 1,Item 2,Item 3)"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
132:
How do I hide the left gray portion to be shown on the drop down menu/popup (method 2)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:PopupFlatImageWidth := 0
		oItems := oToolBar:Items()
			oItems1 := oItems:Add("Popup",2):Items()
				oItems1:Add("Item 1")
				oItems1:Add("Item 2")
				oItems1:Add("Item 3")
				oItems1:PopupAppearance := 6/*ShadowBorder*/
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
131:
How do I hide the left gray portion to be shown on the drop down menu/popup (method 1)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:PopupFlatAppearance := .F.
		oItems := oToolBar:Items()
			oItems1 := oItems:Add("Popup",2):Items()
				oItems1:Add("Item 1")
				oItems1:Add("Item 2")
				oItems1:Add("Item 3")
				oItems1:PopupAppearance := 6/*ShadowBorder*/
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
130:
How can I arrange the drop down item from left to right, rather than top to bottom

PROCEDURE OnSelectItem(oToolBar,Itm)
	DevOut( "Clicked" )
RETURN

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SelectItem := {|Itm| OnSelectItem(oToolBar,Itm)} /*Occurs when the user selects the item.*/

		oToolBar:PopupFlatAppearance := .F.
		oItems := oToolBar:Items()
			oItem := oItems:Add("Button",2)
				oItem:ShowAsButton := 275/*exShowAsSelectButtonBottom+exShowAsButtonAutoSize*/
				oItems1 := oItem:Items()
					oItems1:PopupAppearance := 6/*ShadowBorder*/
					oItem1 := oItems1:Add("",2)
						oItem1:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
						oItems2 := oItem1:Items()
							oItems2:Add("Item 1")
							oItems2:Add("Item 2")
							oItems2:Add("Item 3")
			oItems:Add(""):ToString := "Button[button=0x0113][popupapp=6]([group=0x03](Item 1,Item 2,Item 3))"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
129:
How can I add a drop down button / combobox (method 2)

PROCEDURE OnSelectItem(oToolBar,Itm)
	DevOut( "Clicked" )
RETURN

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SelectItem := {|Itm| OnSelectItem(oToolBar,Itm)} /*Occurs when the user selects the item.*/

		oItems := oToolBar:Items()
			oItem := oItems:Add("Button",2)
				oItem:ShowAsButton := 275/*exShowAsSelectButtonBottom+exShowAsButtonAutoSize*/
				oItems1 := oItem:Items()
					oItems1:PopupAppearance := 6/*ShadowBorder*/
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
			oItems:Add(""):ToString := "Button[button=275][popupapp=6](Item 1[id=20],Item 2[id=30],Item 3[id=40])"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
128:
How can I add a drop down button / combobox (method 1)

PROCEDURE OnSelectItem(oToolBar,Itm)
	DevOut( "Clicked" )
RETURN

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SelectItem := {|Itm| OnSelectItem(oToolBar,Itm)} /*Occurs when the user selects the item.*/

		oItems := oToolBar:Items()
			oItem := oItems:Add("Button",2)
				oItem:ShowAsButton := 19/*exShowAsSelectButton+exShowAsButtonAutoSize*/
				oItems1 := oItem:Items()
					oItems1:PopupAppearance := 6/*ShadowBorder*/
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
			oItems:Add(""):ToString := "Button[button=0x13][popupapp=6](Item 1[id=20],Item 2[id=30],Item 3[id=40])"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
127:
I am using exShowAsSelectButton/exShowAsSelectButtonBottom but none of them works. What could be wrong

PROCEDURE OnSelectItem(oToolBar,Itm)
	DevOut( "Clicked" )
RETURN

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SelectItem := {|Itm| OnSelectItem(oToolBar,Itm)} /*Occurs when the user selects the item.*/

		oItems := oToolBar:Items()
			oItem := oItems:Add("Button",2)
				oItem:ShowAsButton := 19/*exShowAsSelectButton+exShowAsButtonAutoSize*/
				oItems1 := oItem:Items()
					oItems1:PopupAppearance := 6/*ShadowBorder*/
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
		oToolBar:Refresh()

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

PROCEDURE OnSelectItem(oToolBar,Itm)
	DevOut( "Clicked" )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SelectItem := {|Itm| OnSelectItem(oToolBar,Itm)} /*Occurs when the user selects the item.*/

		oItems := oToolBar:Items()
			oItems:Add("Button"):ShowAsButton := 3/*exShowAsButtonAutoSize+exShowAsButton*/
			oItems:Add(""):ToString := "Button[button=0x03]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
125:
How can I display grouping items with no frame arround

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("Horizontal Group",2)
				oItem:GroupPopup := 243/*exGroupPopupFrameThickBox+exGroupPopupFrameSolidBox+exGroupPopupEqualHeight+exGroupPopupEqualWidth+exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItems1:Add("A"):Alignment := 1/*exCenter*/
					oItems1:Add("BC"):Alignment := 1/*exCenter*/
					oItems1:Add("D"):Alignment := 1/*exCenter*/
			oItems:Add(""):ToString := "Horizontal Group[group=243](A[id=20][align=1],BC[id=30][align=1],D[id=40][align=1])"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
124:
How can I display grouping items of the same size/width/height

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("Horizontal Group",2)
				oItem:GroupPopup := 241/*exGroupPopupFrameThickBox+exGroupPopupFrameSolidBox+exGroupPopupEqualHeight+exGroupPopupEqualWidth+exGroupPopup*/
				oItems1 := oItem:Items()
					oItems1:Add("A"):Alignment := 1/*exCenter*/
					oItems1:Add("BC"):Alignment := 1/*exCenter*/
					oItems1:Add("D"):Alignment := 1/*exCenter*/
			oItems:Add(""):ToString := "Horizontal Group[group=0xF1](A[id=20][align=1],BC[id=30][align=1],D[id=40][align=1])"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
123:
Is it possible to display a ticker frame arround grouping items

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("Horizontal Group",2)
				oItem:GroupPopup := 193/*exGroupPopupFrameThickBox+exGroupPopupFrameSolidBox+exGroupPopup*/
				oItems1 := oItem:Items()
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
			oItems:Add(""):ToString := "Horizontal Group[group=193](Item 1[id=20],Item 2[id=30],Item 3[id=40])"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
122:
How do I display items horizontally arranged

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("Horizontal Group",2)
				oItem:GroupPopup := 1/*exGroupPopup*/
				oItems1 := oItem:Items()
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
			oItems:Add(""):ToString := "Horizontal Group[group=0x01](Item 1[id=20],Item 2[id=30],Item 3[id=40])"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
121:
Is it possible to expand an item when it is clicked (tree,group,vertical)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("Expand",2)
				oItem:GroupPopup := 259/*exGroupPopupVertical+exNoGroupPopupFrame+exGroupPopup*/
				oItem:Check := .T.
				oItem:ShowPopupOnChecked := .T.
				oItems1 := oItem:Items()
					oItems1:Padding := "22,0,0,0"
					oItems1:Add("Radio 1"):Radio := .T.
					oItems1:Add("Radio 2"):Radio := .T.
					oItem1 := oItems1:Add("Radio 3")
						oItem1:Radio := .T.
						oItem1:Checked := .T.
				oItem:Checked := .T.
			oItems:Add(""):ToString := "Expand[typ=1][chk=1][spchk=-1][group=0x0103][itemspad=22,0,0,0](Radio 1[id=20][typ=2],Radio 2[id=30][typ=2],Radio 3[id=40][typ=2][chk=1])"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
120:
Is it possible to expand an item when it is clicked (tree,group,vertical)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("Expand",2)
				oItem:GroupPopup := 259/*exGroupPopupVertical+exNoGroupPopupFrame+exGroupPopup*/
				oItem:Check := .T.
				oItem:ShowPopupOnChecked := .T.
				oItems1 := oItem:Items()
					oItems1:Padding := "22,0,0,0"
					oItems1:Add("Radio 1"):Radio := .T.
					oItems1:Add("Radio 2"):Radio := .T.
					oItem1 := oItems1:Add("Radio 3")
						oItem1:Radio := .T.
						oItem1:Checked := .T.
				oItem:Checked := .T.
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
119:
Is it possible to expand an item when it is clicked (group)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("Expand",2)
				oItem:GroupPopup := 1/*exGroupPopup*/
				oItem:ItemHeight := 24
				oItem:Check := .T.
				oItem:ShowPopupOnChecked := .T.
				oItems1 := oItem:Items()
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
					oItems1:PopupAppearance := 6/*ShadowBorder*/
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
118:
Is it possible to extend an item when it is clicked

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("Expand",2)
				oItem:Check := .T.
				oItem:ShowPopupOnChecked := .T.
				oItems1 := oItem:Items()
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
					oItems1:PopupAppearance := 6/*ShadowBorder*/
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
117:
Does your control implement padding for item

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 250,250,250 } )  , .F. ))
			oItems:Add("Item"):Padding := "4,4,4,4"
			oItems:Add(""):ToString := "Item[pad=4,4,4,4]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
116:
How can I add an empty item for a horizontal group

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItems1:Add("Item 1")
					oItem1 := oItems1:Add("",2)
						oItem1:GroupPopup := 5/*exGroupPopupCenter+exGroupPopup*/
						oItem1:ItemHeight := 12
						oItem2 := oItem1:Items():Add("")
							oItem2:Enabled := .F.
							oItem2:ItemHeight := 8
							oItem2:CaptionWidth := 8
					oItems1:Add("Item 2")
		oToolBar:Refresh()

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

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:Add("Item")
			oItem := oItems:Add("")
				oItem:Enabled := .F.
				oItem:ItemHeight := 2
				oItem:CaptionWidth := 8
				oItem:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
			oItems:Add("Item")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
114:
How can I add an empty/frame item

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1
	LOCAL oItems
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:Add("Item 1")
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 5/*exGroupPopupCenter+exGroupPopup*/
				oItem:ItemHeight := 12
				oItem1 := oItem:Items():Add("")
					oItem1:Enabled := .F.
					oItem1:ItemHeight := 8
					oItem1:CaptionWidth := 8
			oItems:Add("Item 2")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
113:
How can I specify the height of the item

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 250,250,250 } )  , .F. ))
			oItems:Add("Item"):ItemHeight := 64
			oItems:Add(""):ToString := "Item[height=64]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
112:
How can I specify the width of the item

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 250,250,250 } )  , .F. ))
			oItems:Add("Item"):CaptionWidth := 128
			oItems:Add(""):ToString := "Item[captionwidth=128]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
111:
How do I align the item

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1
	LOCAL oItems
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 250,250,250 } )  , .F. ))
			oItems:Add("Item")
			oItem := oItems:Add("Item")
				oItem:Alignment := 1/*exCenter*/
				oItem:CaptionWidth := 128
			oItem1 := oItems:Add("Item")
				oItem1:Alignment := 2/*exRight*/
				oItem1:CaptionWidth := 128
			oItems:Add(""):ToString := "Item[align=1]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
110:
How can I underline the item

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:Add("Item"):Underline := .T.
			oItems:Add("<u>Item</u>")
			oItems:Add(""):ToString := "Item[und]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
109:
How can I show the item as strikeout

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:Add("Item"):Strikeout := .T.
			oItems:Add("<s>Item</s>")
			oItems:Add(""):ToString := "Item[stk]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
108:
How can I show the item in italics

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:Add("Item"):Italic := .T.
			oItems:Add("<i>Item</i>")
			oItems:Add(""):ToString := "Item[itl]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
107:
How can I show the item in bold

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:Add("Item"):Bold := .T.
			oItems:Add("<b>Item</b>")
			oItems:Add(""):ToString := "Item[bld]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
106:
How can I show the item as disabled but still be able to select or use it

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:Add("Item"):ShowAsDisabled := .T.
			oItems:Add(""):ToString := "Item[showdis=1]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
105:
How can I enable or disable an item

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:Add("Item"):Enabled := .F.
			oItems:Add(""):ToString := "Item[dis]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
104:
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 oItems
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:Add("Item"):CaptionWidth := 128
			oItems:Add("<font ;6>separator",1)
			oItems:Add("Item"):CaptionWidth := 128
			oItems:Add(""):ToString := "<font ;6>separator[sep]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
103:
How can I change the item's foreground color

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:Add("Item"):SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oItems:Add("<fgcolor FF0000>Item")
			oItems:Add(""):ToString := "Item[fg=RGB(255,0,0)]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
102:
How can I change the item's background/backcolor, when the item is selected/checked (radio-buttons)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Radio 1")
						oItem1:SetProperty("HotBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
						oItem1:SetProperty("SelBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
						oItem1:SetProperty("SelHotBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
						oItem1:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
						oItem1:Radio := .T.
						oItem1:RadioGroup := 100
						oItem1:Checked := .T.
					oItem2 := oItems1:Add("Radio 2")
						oItem2:SetProperty("HotBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
						oItem2:SetProperty("SelBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
						oItem2:SetProperty("SelHotBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
						oItem2:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
						oItem2:Radio := .T.
						oItem2:RadioGroup := 100
					oItems1:Add(""):ToString := "Radio 3[typ=2][show=1][grp=100][bghot=RGB(255,255,255)][bgsel=RGB(255,0,0)][bgselhot=RGB(255,0,0)]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
101:
How can I change the item's background/backcolor, when the item is selected/checked (check-box)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("Check 1")
				oItem:SetProperty("HotBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
				oItem:SetProperty("SelBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
				oItem:SetProperty("SelHotBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
				oItem:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
				oItem:Checked := .T.
				oItem:Check := .T.
			oItems:Add(""):ToString := "Check 2[typ=1][chk=0][show=1][bghot=RGB(255,255,255)][bgsel=RGB(255,0,0)][bgselhot=RGB(255,0,0)]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
100:
How can I prevent showing the border for selected/highlight/hot items

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SetProperty("Background",102/*exMenuSelBorderColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oItems := oToolBar:Items()
			oItems:Add("Item")
			oItems:Add("Item")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
99:
How can I change the item's background/backcolor, when the cursor hovers it (hot)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:Add("Item"):SetProperty("HotBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oItems:Add(""):ToString := "Item[bghot=RGB(255,0,0)]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
98:
How can I change the item's background/backcolor

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oItems := oToolBar:Items()
			oItems:Add("Item"):SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oItems:Add("Item"):SetProperty("BackColor",0x1000000)
			oItems:Add(""):ToString := "Item[bg=RGB(255,0,0)]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
97:
How can I specify/assign the item's identifier

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:Debug := .T.
		oItems := oToolBar:Items()
			oItems:Add("ID 1",0,1000)
			oItems:Add("ID 2"):ID := 1001
			oItems:Add(""):ToString := "ID 3[id=1002]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
96:
The popup is displayed using a fade/light-up effect. Is it possible to prevent that

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ShowPopupEffect := 0/*exShowPopupDirect*/
		oItems := oToolBar:Items()
			oItems1 := oItems:Add("Popup",2):Items()
				oItems1:Add("Item 1")
				oItems1:Add("Item 2")
				oItems1:Add("Item 3")
				oItems1:PopupAppearance := 6/*ShadowBorder*/
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
95:
How can I show semi-transparent popups

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:PopupVisibility := 50
		oItems := oToolBar:Items()
			oItems1 := oItems:Add("Popup",2):Items()
				oItems1:Add("Item 1")
				oItems1:Add("Item 2")
				oItems1:Add("Item 3")
				oItems1:PopupAppearance := 6/*ShadowBorder*/
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
94:
How can I change the popup's border

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems1 := oItems:Add("Popup",2):Items()
				oItems1:Add("Item 1")
				oItems1:Add("Item 2")
				oItems1:Add("Item 3")
				oItems1:PopupAppearance := 6/*ShadowBorder*/
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
93:
How can I show a horizontal separator/line between groups (method 3,EBN color)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 259/*exGroupPopupVertical+exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("")
						oItem1:AllowEdit := 3/*exItemEditSlider*/
						oItem1:EditBorder := 0/*exEditBorderNone*/
						oItem1:EditWidth := -128
						oItem1:EditValue := 25
					oItem2 := oItems1:Add("")
						oItem2:Enabled := .F.
						oItem2:SetProperty("BackColor",0x1000000)
						oItem2:ItemHeight := 8
						oItem2:CaptionWidth := 128
					oItem3 := oItems1:Add("")
						oItem3:AllowEdit := 3/*exItemEditSlider*/
						oItem3:EditBorder := 0/*exEditBorderNone*/
						oItem3:EditWidth := -128
						oItem3:EditValue := 25
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
92:
How can I show a horizontal separator/line between groups (method 2,solid color)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 259/*exGroupPopupVertical+exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("")
						oItem1:AllowEdit := 3/*exItemEditSlider*/
						oItem1:EditBorder := 0/*exEditBorderNone*/
						oItem1:EditWidth := -128
						oItem1:EditValue := 25
					oItem2 := oItems1:Add("")
						oItem2:Enabled := .F.
						oItem2:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
						oItem2:ItemHeight := 8
						oItem2:CaptionWidth := 128
					oItem3 := oItems1:Add("")
						oItem3:AllowEdit := 3/*exItemEditSlider*/
						oItem3:EditBorder := 0/*exEditBorderNone*/
						oItem3:EditWidth := -128
						oItem3:EditValue := 25
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
91:
How can I show a horizontal separator/line between groups (method 1,pattern)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 259/*exGroupPopupVertical+exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("")
						oItem1:AllowEdit := 3/*exItemEditSlider*/
						oItem1:EditBorder := 0/*exEditBorderNone*/
						oItem1:EditWidth := -128
						oItem1:EditValue := 25
					oItem2 := oItems1:Add("",2)
						oItem2:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
						oItems2 := oItem2:Items()
							oItem3 := oItems2:Add("")
								oItem3:Enabled := .F.
								oItem3:ItemHeight := 8
								oItem3:CaptionWidth := 128
							oItems2:BackgroundExt := "none[(0,50%-1,100%,2),pattern=0x006,patterncolor=RGB(128,128,128)]"
					oItem4 := oItems1:Add("")
						oItem4:AllowEdit := 3/*exItemEditSlider*/
						oItem4:EditBorder := 0/*exEditBorderNone*/
						oItem4:EditWidth := -128
						oItem4:EditValue := 25
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
90:
How can I show a vertical separator/line between groups (method 3,EBN color)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("")
						oItem1:ItemHeight := 128
						oItem1:AllowEdit := 1027/*exItemEditVertical+exItemEditSlider*/
						oItem1:EditBorder := 0/*exEditBorderNone*/
						oItem1:EditWidth := 32
						oItem1:EditValue := 25
					oItem2 := oItems1:Add("")
						oItem2:Enabled := .F.
						oItem2:SetProperty("BackColor",0x1000000)
						oItem2:ItemHeight := 96
						oItem2:CaptionWidth := 8
					oItem3 := oItems1:Add("")
						oItem3:ItemHeight := 128
						oItem3:AllowEdit := 1027/*exItemEditVertical+exItemEditSlider*/
						oItem3:EditBorder := 0/*exEditBorderNone*/
						oItem3:EditWidth := 32
						oItem3:EditValue := 25
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
89:
How can I show a vertical separator/line between groups (method 2,solid color)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("")
						oItem1:ItemHeight := 128
						oItem1:AllowEdit := 1027/*exItemEditVertical+exItemEditSlider*/
						oItem1:EditBorder := 0/*exEditBorderNone*/
						oItem1:EditWidth := 32
						oItem1:EditValue := 25
					oItem2 := oItems1:Add("")
						oItem2:Enabled := .F.
						oItem2:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
						oItem2:ItemHeight := 96
						oItem2:CaptionWidth := 8
					oItem3 := oItems1:Add("")
						oItem3:ItemHeight := 128
						oItem3:AllowEdit := 1027/*exItemEditVertical+exItemEditSlider*/
						oItem3:EditBorder := 0/*exEditBorderNone*/
						oItem3:EditWidth := 32
						oItem3:EditValue := 25
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
88:
How can I show a vertical separator/line between groups (method 1,pattern)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4
	LOCAL oItems,oItems1,oItems2
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("")
						oItem1:ItemHeight := 128
						oItem1:AllowEdit := 1027/*exItemEditVertical+exItemEditSlider*/
						oItem1:EditBorder := 0/*exEditBorderNone*/
						oItem1:EditWidth := 32
						oItem1:EditValue := 25
					oItem2 := oItems1:Add("",2)
						oItem2:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
						oItems2 := oItem2:Items()
							oItem3 := oItems2:Add("")
								oItem3:Enabled := .F.
								oItem3:ItemHeight := 96
								oItem3:CaptionWidth := 8
							oItems2:BackgroundExt := "none[(50%-1,0,2,100%),pattern=6,patterncolor=RGB(128,128,128)]"
					oItem4 := oItems1:Add("")
						oItem4:ItemHeight := 128
						oItem4:AllowEdit := 1027/*exItemEditVertical+exItemEditSlider*/
						oItem4:EditBorder := 0/*exEditBorderNone*/
						oItem4:EditWidth := 32
						oItem4:EditValue := 25
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
87:
How can I show a pattern on the items

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
			oItems:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
			oItems:Padding := "2,2,2,12"
			oItems:BackgroundExt := "root[pattern=0x006,patterncolor=RGB(128,128,128),frame=RGB(128,128,128)](bottom[2],bottom[12,text=`<font ;6><fgcolor 808080><off -2> clipboard </off></font></fgcolor>`,align=0x21])"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
86:
How can I show a thick frame arround the items

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
			oItems:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
			oItems:Padding := "2,2,2,12"
			oItems:BackgroundExt := "root[frame=RGB(128,128,128)](bottom[2],bottom[12,text=`<font ;6><fgcolor 808080><off -2> clipboard </off></font></fgcolor>`,align=0x21])"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
85:
How can I add some additional icons on the background

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 1/*exGroupPopup*/
				oItems1 := oItem:Items()
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
			oItems:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
			oItems:Padding := "0,0,0,16"
			oItems:BackgroundExt := "root[text=`<img>2</img><font ;6><fgcolor 808080><off -2> clipboard </off></font></fgcolor><img>2</img>`,align=0x21]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
84:
How can I add some additional text on the background

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 1/*exGroupPopup*/
				oItems1 := oItem:Items()
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
			oItems:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
			oItems:Padding := "0,0,0,8"
			oItems:BackgroundExt := "root[text=`<font ;6><fgcolor 808080>clipboard`,align=0x21]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
83:
How can I disable incremental searching

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:PopupIncrementalSearch := 0/*exNoIncrementalSearch*/
		oToolBar:Items():ToString := "Popup(Item 1,Item 2,Item 3)"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
82:
How can I assign a tooltip to an item (method 2)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ToString := "ToolTip[id=10][ttp=This is a bit of text that should be shown when cursor hovers the item]"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
81:
How can I assign a tooltip to an item (method 1)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:Items():Add("ToolTip"):Tooltip := "This is a bit of text that should be shown when cursor hovers the item"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
80:
How can I assign a spin field to the item (method 2)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2
	LOCAL oItems
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oItems := oToolBar:Items()
			oItem := oItems:Add("Spin")
				oItem:AllowEdit := 512/*exItemEditSpin*/
				oItem:EditWidth := 16
				oItem:EditValue := 15
				oItem:EditBorder := 0/*exEditBorderNone*/
				oItem:SetProperty("EditOption",2/*exEditMaxValue*/,1000)
			oItem1 := oItems:Add("Edit-Spin")
				oItem1:AllowEdit := 513/*exItemEditSpin+exItemEditText*/
				oItem1:EditWidth := -128
				oItem1:EditValue := 15
				oItem1:SetProperty("EditOption",2/*exEditMaxValue*/,1000)
			oItem2 := oItems:Add("Splider-Spin")
				oItem2:AllowEdit := 515/*exItemEditSpin+exItemEditSlider*/
				oItem2:EditWidth := -128
				oItem2:EditValue := 25
				oItem2:EditBorder := 0/*exEditBorderNone*/
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
79:
How can I assign a spin field to the item (method 1)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oToolBar:ToString := "Spin[id=10][edittype=0x0200][edit=15][border=0][max=1000][editwidth=16],Edit-Spin[id=20][edittype=0x0201][edit=15][max=1000][editwidth=-128],Splider-Spin[id=30][edittype=0x0203][edit=25][border=0][editwidth=-128]"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
78:
How can I add a vertical slider (method 2)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ToString := "Vertical[id=10][edittype=0x0403][edit=25][border=0][height=128]"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
77:
How can I add a vertical slider (method 1)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oItems := oToolBar:Items()
			oItem := oItems:Add("Vertical")
				oItem:ItemHeight := 128
				oItem:AllowEdit := 1027/*exItemEditVertical+exItemEditSlider*/
				oItem:EditBorder := 0/*exEditBorderNone*/
				oItem:EditWidth := 32
				oItem:EditValue := 25
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
76:
How can I disable an editor (method 2)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ToString := "Disabled[id=10][dis][edittype=0x01][edit=text-box][editwidth=-128]"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
75:
How can I disable an editor (method 1)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("Disabled")
				oItem:AllowEdit := 1/*exItemEditText*/
				oItem:EditWidth := -128
				oItem:EditValue := "text-box"
				oItem:Enabled := .F.
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
74:
How can I lock an editor (method 2)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ToString := "Locked[id=10][edittype=0x0101][edit=disabled text-box][editwidth=-128]"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
73:
How can I lock an editor (method 1)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("Locked")
				oItem:AllowEdit := 257/*exItemEditReadOnly+exItemEditText*/
				oItem:EditWidth := -128
				oItem:EditValue := "disabled text-box"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
72:
How can I assign a font field to the item (method 2)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oItems := oToolBar:Items()
			oItem := oItems:Add("Font")
				oItem:AllowEdit := 7/*exItemEditFont*/
				oItem:EditWidth := -128
				oItem:EditValue := "Tahoma"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
71:
How can I assign a font field to the item (method 1)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oToolBar:ToString := "Font[id=10][edittype=0x07][edit=Tahoma][editwidth=-128]"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
70:
How can I assign a color field to the item (method 2)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oItems := oToolBar:Items()
			oItem := oItems:Add("Color")
				oItem:AllowEdit := 6/*exItemEditColor*/
				oItem:EditBorder := 0/*exEditBorderNone*/
				oItem:EditWidth := -128
				oItem:EditValue := 255
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
69:
How can I assign a color field to the item (method 1)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oToolBar:ToString := "Color[id=10][edittype=0x06][edit=#FF0000][border=0][editwidth=-128]"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
68:
How can I assign a scrollbar field to the item (method 2)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oItems := oToolBar:Items()
			oItem := oItems:Add("ScrollBar")
				oItem:AllowEdit := 5/*exItemEditScrollBar*/
				oItem:EditWidth := -128
				oItem:EditValue := "25"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
67:
How can I assign a scrollbar field to the item (method 1)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oToolBar:ToString := "ScrollBar[id=10][edittype=0x05][edit=25][editwidth=-128]"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
66:
Is it possible to change the tooltip beging shown when I change the slider/scroll/progress value

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oItems := oToolBar:Items()
			oItem := oItems:Add("Progress")
				oItem:AllowEdit := 4/*exItemEditProgress*/
				oItem:EditWidth := -128
				oItem:EditValue := 25
				oItem:SetProperty("EditOption",8/*exEditChangeToolTip*/,"`Current value is: ` + value")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
65:
How can I hide the tooltip beging shown when I change the slider/scroll/progress value

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oItems := oToolBar:Items()
			oItem := oItems:Add("Progress")
				oItem:AllowEdit := 4/*exItemEditProgress*/
				oItem:EditWidth := -128
				oItem:EditValue := 25
				oItem:SetProperty("EditOption",8/*exEditChangeToolTip*/,"")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
64:
How can I assign a progress field to the item (method 2)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oItems := oToolBar:Items()
			oItem := oItems:Add("Progress")
				oItem:AllowEdit := 4/*exItemEditProgress*/
				oItem:EditWidth := -128
				oItem:EditValue := 25
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
63:
How can I assign a progress field to the item (method 1)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oToolBar:ToString := "Progress[id=10][edittype=0x04][edit=25][editwidth=-128]"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
62:
How can I assign a slider field to the item (method 2)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1
	LOCAL oItems
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oItems := oToolBar:Items()
			oItem := oItems:Add("Slider")
				oItem:AllowEdit := 3/*exItemEditSlider*/
				oItem:EditWidth := -128
				oItem:EditValue := 25
			oItem1 := oItems:Add("Slider")
				oItem1:AllowEdit := 3/*exItemEditSlider*/
				oItem1:EditBorder := 0/*exEditBorderNone*/
				oItem1:EditWidth := -128
				oItem1:SetProperty("EditOption",1/*exEditMinValue*/,50)
				oItem1:SetProperty("EditOption",2/*exEditMaxValue*/,450)
				oItem1:SetProperty("EditOption",3/*exEditTickStyle*/,2)
				oItem1:SetProperty("EditOption",4/*exEditTickFrequency*/,50)
				oItem1:SetProperty("EditOption",5/*exEditTickLabel*/,"value = vmin ? '<br><font ;6><b>'+value : ( value = vmax ? '<br><font ;6><b>'+value : ( value = 200 ? '<br><font ;6><b><fgcolor FF0000>'+value : '' ) )")
				oItem1:EditValue := 345
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
61:
How can I assign a slider field to the item (method 1)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oToolBar:ToString := "Slider[id=10][edittype=0x03][edit=25][editwidth=-128],Slider[id=20][edittype=0x03][edit=345][border=0][min=50][max=450][tick=2][freq=50][ticklabel=value = vmin ? '<br><font ;6><b>'+value : ( value = vmax ? '<br><font ;6><b>'+value : ( value = 200 ? '<br><font ;6><b><fgcolor FF0000>'+value : '' ) )][editwidth=-128]"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
60:
How can I assign a mask (time) field to the item (method 2)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oItems := oToolBar:Items()
			oItem := oItems:Add("Time")
				oItem:AllowEdit := 2/*exItemEditMask*/
				oItem:EditWidth := -128
				oItem:EditMask := "99:00:00;;0;overtype,warning=Invalid character"
				oItem:EditValue := "123456"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
59:
How can I assign a mask (time) field to the item (method 1)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oToolBar:ToString := "Time[id=10][edittype=0x02][edit=12:34:56][mask=99:00:00;;0;overtype,warning=Invalid character][editwidth=-128]"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
58:
How can I assign a mask (license key) field to the item (method 2)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oItems := oToolBar:Items()
			oItem := oItems:Add("License Key")
				oItem:AllowEdit := 2/*exItemEditMask*/
				oItem:EditWidth := -128
				oItem:EditMask := "AAAA-AAAA-AAAA-AAAA"
				oItem:EditValue := "1234"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
57:
How can I assign a mask (license key) field to the item (method 1)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oToolBar:ToString := "License Key[id=10][edittype=0x02][edit=1234-____-____-____][mask=AAAA-AAAA-AAAA-AAAA][editwidth=-128]"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
56:
How can I assign a mask (IP address) field to the item (method 2)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oItems := oToolBar:Items()
			oItem := oItems:Add("IP Address")
				oItem:AllowEdit := 2/*exItemEditMask*/
				oItem:EditWidth := -128
				oItem:EditMask := "{0,255}.{0,255}.{0,255}.{0,255}"
				oItem:EditValue := "1.2.3.4"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
55:
How can I assign a mask (IP address) field to the item (method 1)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oToolBar:ToString := "IP Address[id=10][edittype=0x02][edit=1.2.3.4][mask={0,255}.{0,255}.{0,255}.{0,255}][editwidth=-128]"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
54:
How can I assign a mask (phone) field to the item (method 2)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oItems := oToolBar:Items()
			oItem := oItems:Add("Phone")
				oItem:AllowEdit := 2/*exItemEditMask*/
				oItem:EditWidth := -128
				oItem:EditMask := "!(9999) 000 000;;;empty,select=4,overtype,beep"
				oItem:EditValue := "0771638317"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
53:
How can I assign a mask (phone) field to the item (method 1)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oToolBar:ToString := "Phone[id=10][edittype=0x02][edit=(0771) 638 317][mask=!(9999) 000 000;;;empty,select=4,overtype,beep][editwidth=-128]"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
52:
How can I assign a mask (date) field to the item (method 2)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1
	LOCAL oItems
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oItems := oToolBar:Items()
			oItem := oItems:Add("")
				oItem:AllowEdit := 2/*exItemEditMask*/
				oItem:EditWidth := -128
				oItem:EditMask := "`Date: `{1,12}/{1,31}/{1950,2050};;;select=1"
				oItem:EditValue := "02/15/2015"
			oItem1 := oItems:Add("Date")
				oItem1:AllowEdit := 2/*exItemEditMask*/
				oItem1:EditWidth := -128
				oItem1:EditMask := "!00/00/0000;;0;empty,validateas=1,invalid=Invalid date!,warning=Invalid character!,select=4,overtype"
				oItem1:EditValue := "02/15/2015"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
51:
How can I assign a mask (date) field to the item (method 1)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oToolBar:ToString := "[id=10][edittype=0x02][edit=Date: 2/15/2015][mask=`Date: `{1,12}/{1,31}/{1950,2050};;;select=1][editwidth=-128],Date[id=20][edittype=0x02][edit=02/15/2015][mask=!00/00/0000;;0;empty,validateas=1,invalid=Invalid date!,warning=Invalid character!,select=4,overtype][editwidth=-128]"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
50:
How can I assign a mask (integer) field to the item (method 2)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2
	LOCAL oItems
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oItems := oToolBar:Items()
			oItem := oItems:Add("Integer")
				oItem:AllowEdit := 2/*exItemEditMask*/
				oItem:EditWidth := -128
				oItem:EditMask := ";;;float,grouping=,digits=0"
				oItem:EditValue := 1000
			oItem1 := oItems:Add("Integer-Grouping")
				oItem1:AllowEdit := 2/*exItemEditMask*/
				oItem1:EditWidth := -128
				oItem1:EditMask := ";;;float,decimal=,digits=0,select=1"
				oItem1:EditValue := 1000
			oItem2 := oItems:Add("Integer-In-Range")
				oItem2:AllowEdit := 2/*exItemEditMask*/
				oItem2:EditWidth := -128
				oItem2:EditMask := "{0,2050}"
				oItem2:EditValue := 1000
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
49:
How can I assign a mask (integer) field to the item (method 1)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oToolBar:ToString := "Integer[id=10][edittype=0x02][edit=1000][mask=;;;float,grouping=,digits=0][editwidth=-128],Integer-Grouping[id=20][edittype=0x02][edit=1,000][mask=;;;float,decimal=,digits=0,select=1][editwidth=-128],Integer-In-Range[id=30][edittype=0x02][edit=1000][mask={0,2050}][editwidth=-128]"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
48:
How can I assign a mask field to the item (method 2)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oItems := oToolBar:Items()
			oItem := oItems:Add("Mask")
				oItem:AllowEdit := 2/*exItemEditMask*/
				oItem:EditWidth := -128
				oItem:EditMask := ";;;float,select=1"
				oItem:EditValue := 1000
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
47:
How can I assign a mask field to the item (method 1)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oToolBar:ToString := "Text-Box[id=10][edittype=0x02][edit=1,000][mask=;;;float,select=1][editwidth=-128]"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
46:
How can I assign an edit / text-box to the item (method 2)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oItems := oToolBar:Items()
			oItem := oItems:Add("Mask")
				oItem:AllowEdit := 1/*exItemEditText*/
				oItem:EditValue := "this is a text"
				oItem:EditWidth := -128
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
45:
How can I assign an edit / text-box to the item (method 1)

PROCEDURE OnEditChange(oToolBar,Itm)
	DevOut( Transform(Itm,"") )
RETURN

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:EditChange := {|Itm| OnEditChange(oToolBar,Itm)} /*Occurs when the user alters the item's text box field.*/

		oToolBar:ToString := "Text-Box[edit=this is a text][editwidth=-128]"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
44:
How can I display a tab into the toolbar (method 2)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3
	LOCAL oItems,oItems1,oItems2,oItems3
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SetProperty("Background",102/*exMenuSelBorderColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oItems := oToolBar:Items()
			oItems:ToString := "[id=0][group=0x0103][itemspad=4,4,4,4]([id=-10][group=0x03](),[id=-99][bg=RGB(240,240,240)][group=0x03][itemspad=4,4,4,4]([id=-100]))"
			oItems1 := oItems:Item(-10):Items()
				oItems1:Add("",0,0):Padding := "8,0,0,0"
				oItem := oItems1:Add("New Page")
					oItem:ToString := "[typ=2][chk=1][spchk=-1][show=1][grp=10][bghot=RGB(255,255,255)][bgsel=RGB(240,240,240)][bgselhot=RGB(240,240,240)][height=16][group=0x03][tab=-100][pad=2,0,2,0][popupalign=0x01]([id=0][group=0x03]([]))"
					oItem:Caption := "Page<off -5><font ;5><b>1</b></font></off>"
					oItems2 := oItem:Items:Item(0):Items()
						oItem1 := oItems2:Add("add here fields for page 1")
							oItem1:ID := -1000
							oItem1:Enabled := .F.
							oItem1:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
				oItem2 := oItems1:Add("New Page")
					oItem2:ToString := "[typ=2][chk=0][spchk=-1][show=1][grp=10][bghot=RGB(255,255,255)][bgsel=RGB(240,240,240)][bgselhot=RGB(240,240,240)][height=16][group=0x03][tab=-100][pad=2,0,2,0][popupalign=0x01]([id=0][group=0x03]([]))"
					oItem2:Caption := "Page<off -5><font ;5><b>2</b></font></off>"
					oItems3 := oItem2:Items:Item(0):Items()
						oItem3 := oItems3:Add("add here fields for page 2")
							oItem3:ID := -1001
							oItem3:Enabled := .F.
							oItem3:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,255,0 } )  , .F. ))
				oItems1:Add("",0,0):Padding := "8,0,0,0"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
43:
How can I add check-buttons to items, without showing the check-box (method 2)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Check 1")
						oItem1:Check := .T.
						oItem1:Checked := .T.
						oItem1:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
					oItem2 := oItems1:Add("Check 2")
						oItem2:Check := .T.
						oItem2:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
					oItem3 := oItems1:Add("Check 3")
						oItem3:Check := .T.
						oItem3:Checked := .T.
						oItem3:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
42:
How can I add check-buttons to items, without showing the check-box (method 1)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ToString := "[group=0x3](Check 1[chk=1][show=1],Check 2[chk=0][show=1],Check 3[chk=1][show=1])"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
41:
How can I add radio buttons to items, without showing the radio-buttons (method 2)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Radio 1",,1000)
						oItem1:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
						oItem1:Radio := .T.
						oItem1:RadioGroup := 100
					oItem2 := oItems1:Add("Radio 2",,1001)
						oItem2:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
						oItem2:Radio := .T.
						oItem2:RadioGroup := 100
					oItem3 := oItems1:Add("Radio 2",,1003)
						oItem3:ShowCheckedAsSelected := 1/*exDisplayItemHighlight*/
						oItem3:Radio := .T.
						oItem3:RadioGroup := 100
					oItems1:Item(1000):Checked := .T.
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
40:
How can I add radio buttons to items, without showing the radio-buttons (method 1)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ToString := "[group=0x3](Radio 1[rad=1][show=1][grp=100][id=1000],Radio 2[rad=0][show=1][grp=100][id=1001],Radio 2[rad=0][show=1][grp=100][id=1002])"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
39:
How can I add check-buttons to items (method 2)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Check 1")
						oItem1:Check := .T.
						oItem1:Checked := .T.
					oItems1:Add("Check 2"):Check := .T.
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
38:
How can I add check-buttons to items (method 1)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ToString := "[group=0x3](Check 1[chk=1],Check 2[chk=0])"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
37:
How can I add radio buttons to items (method 2)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 1/*exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Radio 1",,1000)
						oItem1:Radio := .T.
						oItem1:RadioGroup := 100
					oItem2 := oItems1:Add("Radio 2",,1001)
						oItem2:Radio := .T.
						oItem2:RadioGroup := 100
					oItem3 := oItems1:Add("Radio 2",,1003)
						oItem3:Radio := .T.
						oItem3:RadioGroup := 100
					oItems1:Item(1000):Checked := .T.
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
36:
How can I add radio buttons to items (method 1)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:ToString := "[group=0x1](Radio 1[rad=1][grp=100][id=1000],Radio 2[rad=0][grp=100][id=1001],Radio 2[rad=0][grp=100][id=1002])"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
35:
How can I change the selection/highlighting color

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SetProperty("SelBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oToolBar:SetProperty("Background",102/*exMenuSelBorderColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 128,0,0 } )  , .F. ))
		oToolBar:SetProperty("Background",111/*exMenuHotForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oToolBar:ToString := "[group=3](Item 1[chk],Item 2[chk])"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
34:
How can I prevent showing/hide the border on the selected/highlighted item

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SetProperty("Background",102/*exMenuSelBorderColor*/,oToolBar:SelBackColor())
		oToolBar:ToString := "Item 1,Item 2"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
33:
How can I display a tab into the toolbar (method 1)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SetProperty("Background",102/*exMenuSelBorderColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oToolBar:ToString := "[group=0x0103][itemspad=4,4,4,4]([id=-10][group=0x03]([id=50][pad=8,0,0,0],Page<off -5><font ;5><b>1</b></font></off>[id=60][typ=2][chk=1][spchk=-1][show=1][grp=10][bghot=RGB(255,255,255)][bgsel=RGB(240,240,240)][bgselhot=RGB(240,240,240)][height=16][group=0x03][tab=-100][pad=2,0,2,0][popupalign=1]([group=0x03]([id=80],add here fields for page 1[id=-1000][dis])),Page<off -5><font ;5><b>2</b></font></off>[id=100][typ=2][spchk=-1][show=1][grp=10][bghot=RGB(255,255,255)][bgsel=RGB(240,240,240)][bgselhot=RGB(2" +;
		"40,240,240)][height=16][group=0x03][tab=-100][pad=2,0,2,0][popupalign=1]([group=0x03]([id=120],add here fields for page 2[id=-1001][dis])),[id=140][pad=8,0,0,0]),[id=-99][bg=RGB(240,240,240)][group=0x03][itemspad=4,4,4,4]([id=-100]))"
		oItem := oToolBar:Items:Item(-1000)
			oItem:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oItem1 := oToolBar:Items:Item(-1001)
			oItem1:SetProperty("BackColor",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
32:
How do I prevent highlighting the item (method 2.b)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:Add("No highlight"):Enabled := .F.
			oItems:Add("Item 2")
			oItems:Add("Item 3")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
31:
How do I prevent highlighting the item (method 2.a)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("No highlight",2)
				oItem:Items():Add("")
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItem:ShowPopupArrow := .F.
			oItems:Add("Item 2")
			oItems:Add("Item 3")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
30:
How do I prevent highlighting the item (method 1.b)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:Items():ToString := "No highlight[dis],Item 2,Item 3"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
29:
How do I prevent highlighting the item (method 1.a)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:Items():ToString := "No highlight[group=0x3][arrow=0]([]),Item 2,Item 3"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
28:
How can I can I assign pictures or images for the item (method 2)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SetProperty("HTMLPicture","pic1","c:\exontrol\images\zipdisk.gif")
		oToolBar:SetProperty("HTMLPicture","pic2","c:\exontrol\images\auction.gif")
		oItems := oToolBar:Items()
			oItems:Add("Item"):HTMLImage := "pic1"
			oItems:Add("Item"):HTMLImage := "pic2"
			oItems:Add("",1)
			oItems:Add("Item <img>pic1</img>")
			oItems:Add("Item <img>pic2</img>")
			oItems:Add("",1)
			oItems:Add("<img>pic1</img> Item <img>pic2</img>")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
27:
How can I can I assign pictures or images for the item (method 1)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:SetProperty("HTMLPicture","pic1","c:\exontrol\images\zipdisk.gif")
		oToolBar:SetProperty("HTMLPicture","pic2","c:\exontrol\images\auction.gif")
		oToolBar:ToString := "Item[himg=pic1],Item[himg=pic2],[sep],Item <img>pic1</img>,Item <img>pic2</img>,[sep],<img>pic1</img> Item <img>pic2</img>"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
26:
How can I can I assign icons for the item (method 2)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oItems := oToolBar:Items()
			oItems:Add("Item"):Image := 1
			oItems:Add("Item"):Image := 2
			oItems:Add("",1)
			oItems:Add("Item <img>1</img>")
			oItems:Add("Item <img>2</img>")
			oItems:Add("",1)
			oItems:Add("Item <img>1</img>"):Image := 1
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
25:
How can I can I assign icons for the item (method 1)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oToolBar:Items():ToString := "Item[img=1],Item[img=2],[sep],Item <img>1</img>,Item <img>2</img>,[sep],Item <img>1</img>[img=1]"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
24:
How can I change the visual appearance / background color (EBN) for a collection of items/group (method 2)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oItems := oToolBar:Items()
			oItems:Padding := "2,2,2,2"
			oItems:SetProperty("BackColor",0x1000000)
			oItems:Add("Item 1")
			oItems:Add("Item 2")
			oItems:Add("Item 3")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
23:
How can I change the visual appearance / background color (EBN) for a collection of items/group (method 1)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oToolBar:Items():ToString := "[itemsbg=0x1000000][itemspad=2,2,2,2][group=0x103](Item 1,Item 2,Item 3)"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
22:
How can I change the background color for a collection of items/group (method 2)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:Padding := "2,2,2,2"
			oItems:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oItems:Add("Item 1")
			oItems:Add("Item 2")
			oItems:Add("Item 3")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
21:
How can I change the background color for a collection of items/group (method 1)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:Items():ToString := "[itemsbg=RGB(255,0,0)][itemspad=2,2,2,2][group=0x103](Item 1,Item 2,Item 3)"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
20:
How can I change the visual appearance / background color (EBN) for a specified item (method 2)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oItems := oToolBar:Items()
			oItems:Add("Item 1")
			oItems:Add("Item 2"):SetProperty("BackColor",0x1000000)
			oItems:Add("Item 3")
		oToolBar:Refresh()

	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 visual appearance / background color (EBN) for a specified item (method 1)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oToolBar:Items():ToString := "Item 1,Item 2[bg=0x1000000],Item 3"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
18:
How can I change the background color for a specified item (method 2)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems:Add("Item 1")
			oItems:Add("Item 2"):SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oItems:Add("Item 3")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
17:
How can I change the background color for a specified item (method 1)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:Items():ToString := "Item 1,Item 2[bg=RGB(255,0,0)],Item 3"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
16:
How can I change the visual appearance (EBN) of the floating popups (method 2, applies to single popup)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oItems := oToolBar:Items()
			oItems1 := oItems:Add("Popup",2):Items()
				oItems1:PopupAppearance := 16777216/*0x1000000+*/
				oItems1:Add("Item 1")
				oItems1:Add("Item 2")
				oItems1:Add("Item 3")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
15:
How can I change the visual appearance (EBN) of the floating popups (method 1, applies to all)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oToolBar:Items():ToString := "Popup(Item 1,Item 2,Item 3)"
		oToolBar:PopupAppearance := 16777216/*0x1000000+*/
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
14:
How can I change the visual appearance of the floating popups (method 2, applies to single popup)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems1 := oItems:Add("Popup",2):Items()
				oItems1:PopupAppearance := 6/*ShadowBorder*/
				oItems1:Add("Item 1")
				oItems1:Add("Item 2")
				oItems1:Add("Item 3")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
13:
How can I change the visual appearance of the floating popups (method 1, applies to all)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:Items():ToString := "Popup(Item 1,Item 2,Item 3)"
		oToolBar:PopupAppearance := 6/*ShadowBorder*/
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
12:
How do I add a popup or a sub-menu so it show when cursor hovers it (method 2)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItems1 := oItems:Add("Popup",2):Items()
				oItems1:Add("Item 1")
				oItems1:Add("Item 2")
				oItems1:Add("Item 3")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
11:
How do I add a popup or a sub-menu so it show when cursor hovers it (method 1)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:Items():ToString := "Popup(Item 1,Item 2,Item 3)"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
10:
How can I arrange the items by grouping (method 2)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2,oItem3
	LOCAL oItems,oItems1,oItems2,oItems3,oItems4
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
				oItems1 := oItem:Items()
					oItem1 := oItems1:Add("Horizontal",2)
						oItem1:GroupPopup := 1/*exGroupPopup*/
						oItems2 := oItem1:Items()
							oItems2:Add("Sub-Item <b>A</b>")
							oItems2:Add("Sub-Item <b>B</b>")
							oItems2:Add("Sub-Item <b>C</b>")
					oItems1:Add(""):CaptionWidth := 16
					oItem2 := oItems1:Add("Vertical",2)
						oItem2:Alignment := 1/*exCenter*/
						oItem2:GroupPopup := 257/*exGroupPopupVertical+exGroupPopup*/
						oItems3 := oItem2:Items()
							oItems3:Add("Sub-Item <b>A</b>")
							oItems3:Add("Sub-Item <b>B</b>")
							oItems3:Add("Sub-Item <b>C</b>")
					oItems1:Add(""):CaptionWidth := 16
					oItem3 := oItems1:Add("Popup",2)
						oItems4 := oItem3:Items()
							oItems4:Add("Sub-Item <b>A</b>")
							oItems4:Add("Sub-Item <b>B</b>")
							oItems4:Add("Sub-Item <b>C</b>")
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
9:
How can I arrange the items by grouping (method 1)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:Items():ToString := "[group=0x03](Horizontal[group=0x01](Sub-Item <b>A</b>,Sub-Item <b>B</b>,Sub-Item <b>C</b>),[captionwidth=16],Vertical[group=0x0101][align=1](Sub-Item <b>A</b>,Sub-Item <b>B</b>,Sub-Item <b>C</b>),[captionwidth=16],Popup(Sub-Item <b>A</b>,Sub-Item <b>B</b>,Sub-Item <b>C</b>),[captionwidth=160])"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
8:
How can I arrange some items vertically, and some horizontally (method 2)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem,oItem1,oItem2
	LOCAL oItems,oItems1,oItems2,oItems3
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItems1 := oItem:Items()
					oItems1:Add("1")
					oItems1:Add("2")
					oItems1:Add("3")
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
			oItem1 := oItems:Add("",2)
				oItems2 := oItem1:Items()
					oItems2:Add("4")
					oItems2:Add("5")
					oItems2:Add("6")
				oItem1:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
			oItem2 := oItems:Add("",2)
				oItems3 := oItem2:Items()
					oItems3:Add("7")
					oItems3:Add("8")
					oItems3:Add("9")
				oItem2:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
7:
How can I arrange some items vertically, and some horizontally (method 1)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:Items():ToString := "[group=3](1,2,3),[group=3](4,5,6),[group=3](7,8,9)"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
6:
How can I assign multiple-lines to an item (method 2)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItems1 := oItem:Items()
					oItems1:Add("Item 1"):Caption := "Item <br><c><b>1"
					oItems1:Add("Item 2"):Caption := "Item <br><c><b>2"
					oItems1:Add("Item 3"):Caption := "Item <br><c><b>3"
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
5:
How can I assign multiple-lines to an item (method 1)

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

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

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oToolBar:Items():ToString := "[group=3](Item <br><c><b>1,Item <br><c><b>2,Item <br><c><b>3)"
		oToolBar:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
4:
How can I add new items arranged horizontally to the toolbar control (method 2)

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItem
	LOCAL oItems,oItems1
	LOCAL oToolBar

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

	oToolBar := XbpActiveXControl():new( oForm:drawingArea )
	oToolBar:CLSID  := "Exontrol.ToolBar.1" /*{8A047308-84CB-4B50-90D7-AFD27BB4639C}*/
	oToolBar:create(,, {10,60},{610,370} )

		oItems := oToolBar:Items()
			oItem := oItems:Add("",2)
				oItems1 := oItem:Items()
					oItems1:Add("Item 1")
					oItems1:Add("Item 2")
					oItems1:Add("Item 3")
				oItem:GroupPopup := 3/*exNoGroupPopupFrame+exGroupPopup*/
		oToolBar:Refresh()

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