146:
Can I include the month's number in the date header

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:Appearance := 0/*None2*/
		oCalendar:SetProperty("Background",8/*exDateHeader*/,oCalendar:BackColor())
		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:DrawGridLine := 0/*Solid*/
		oCalendar:WeekDays := "Su Mo Tu We Th Fr Sa"
		oCalendar:MarkToday := .T.
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellHeight := 32
		oCalendar:FixedCellWidth := 32
		oCalendar:DateHeaderFormat := "1,(" + CHR(34) + "" + CHR(34) + "[b=0],(" + CHR(34) + "" + CHR(34) + "[b=0]/24;2[b=0][bg=0x01000000]/" + CHR(34) + "" + CHR(34) + "[b=0]):24," + CHR(34) + "" + CHR(34) + "[b=0]):32,(" + CHR(34) + "" + CHR(34) + "[b=0],(" + CHR(34) + "" + CHR(34) + "[b=0]/24;3[b=0][bg=0x01000000]/" + CHR(34) + "" + CHR(34) + "[b=0]):24," + CHR(34) + "" + CHR(34) + "[b=0]):32"
		oCalendar:SetProperty("DateHeaderField",1/*exHeaderDate*/,"`<c><%month%> (` + (dateF(value) left 2) + `) <r><off -6><font ;6><%year%>`")
		oAppearance := oCalendar:VisualAppearance()
			oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABFgDg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYIkWA5AiKEYoThCIxzTJ8aw3CKbYRAKCXfoUAJFP7Fc6ABJMBx3EyhZ89NDYEwTIKBahoehqIheEQyDSJNb2DCIahhMSEbKtCooDhGFpUWzLdxTJJVawHJoABjkS45PjEAJ+SBPUZVRRlFyfO7BKSjMKKXgkG4zABWVa1bC1FzxQ6mKykKQLQADDIDVZAeL3JTNCS5IyLLDtO77EqmZ5la7cUgRDj4AY7Ua+MzubBZaovOqDYzAey7TDWLRXFDNIzzTgQAyHHrETZHGqwJxMAEapYGqYpVi2HwzDuQ5oHKIQgggSSUGMOgdE4RhYDwJBVAwIQTH2UYhjQJBRAmZxuCEHZ3icJp5EgKxgAIVgCCQSQSEIBQkCAYhCAIJYKmKNIuFcTBIESPYEk6GBUm+" +;
		"BZOmOPgZgWYRTiYEwvEwaIEAAK4KnKOJrgmTpDjCbYJmKSI2CoOxihOLglCuAACioNg8COA4gmcOZOiidg+g+Dh4moOA8CMYokNmCoyiycQ8E8A4iE6D4OjOMgng8ZJjiITA8CSEouEcKwKkkLJyhQIoIkYU9LjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDyaICokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tEsHJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQg" +;
		"pDOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMAAAkoTADmMLpIjISp+HSS4PgyMAADBzAHDSIoPCOUpWjObIKE8NJOHKIwPEaTprBsHpdjWLB9AieQ+DQYwQAAMR1EOZxWi+bx7HcWQ8msfRYnnDZQACRwxgwc5rGaMZPE0ZxqjWNZtgyRwAAyTZEnuXJzEyAx2kQcxNkye5cEy3cYAcANrGAIH4OAhx3gNGGPAfgIR8jBA4McBMARVhnH4HQOYmxuCpF2MsecEQVBvGQCcIQug6itGQBoARAQ=")
		oCalendar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
145:
How can I display the previously/next month in the date header

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:Appearance := 0/*None2*/
		oCalendar:SetProperty("Background",8/*exDateHeader*/,oCalendar:BackColor())
		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:MaxMonthX := 1
		oCalendar:MaxMonthY := 1
		oCalendar:DrawGridLine := 0/*Solid*/
		oCalendar:WeekDays := "Su Mo Tu We Th Fr Sa"
		oCalendar:MarkToday := .T.
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellHeight := 32
		oCalendar:FixedCellWidth := 32
		oCalendar:DateHeaderFormat := "2[b=0][bg=RGB(240,240,240)]:32,1,3[b=0][bg=RGB(240,240,240)]:32"
		oCalendar:SetProperty("DateHeaderField",2/*exHeaderPrevMonth*/,"`<c>` + ( ( ((0:=((month(value) - 1) - 1) ) < 0 ? 11 : =:0 ) array `January February March April May June July August September October November December` split ` ` ) left 3 ) ")
		oCalendar:SetProperty("DateHeaderField",3/*exHeaderNextMonth*/,"`<c>` + ( ( ((0:=((month(value) - 1) + 1) ) = 12 ? 0 : =:0 ) array `January February March April May June July August September October November December` split ` ` ) left 3 ) ")
		oCalendar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
144:
How can I display the year to a different position

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:Appearance := 0/*None2*/
		oCalendar:SetProperty("Background",8/*exDateHeader*/,oCalendar:BackColor())
		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:MaxMonthX := 1
		oCalendar:MaxMonthY := 1
		oCalendar:DrawGridLine := 0/*Solid*/
		oCalendar:WeekDays := "Su Mo Tu We Th Fr Sa"
		oCalendar:MarkToday := .T.
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellHeight := 32
		oCalendar:FixedCellWidth := 32
		oCalendar:DateHeaderFormat := "6/(1,2[bg=RGB(196,196,196)]:32,3[bg=RGB(196,196,196)]:32)"
		oCalendar:SetProperty("HTMLPicture","up","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJZJJEIJUPDaMZkUAQGAOP4DRShOgvHIGQA0U5CbKzOIZYRIICzCaUX4PS4hRgEGg/QaKJLhGSESIIZoMfAMMIkKQzJxDDBJaCMaoQSABVhAXgQRBLRFdNhIB4QY4PfyUJB7AYAFo+DIWOb7LDdiIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","down","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIEM5BJpBhSxR4LfhhAsRKZJIhBKg4J7tRjJBIAEAMAjzWIJba0E5rWQcWaBAoFR7oK4HewRZCMPiMUDLXRoS4PfjCQJrEhdaJ5ET4YIvTgOJ5kFSTKpkFaTKLEFqTGxyFgTIyuMgCeJaPwDSIKEhlCT5ZoWFT4iIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("DateHeaderField",2/*exHeaderPrevMonth*/,"<c><img>up</img>")
		oCalendar:SetProperty("DateHeaderField",3/*exHeaderNextMonth*/,"<c><img>down</img>")
		oCalendar:SetProperty("DateHeaderField",1/*exHeaderDate*/,"<c><%month%>")
		oCalendar:SetProperty("DateHeaderField",6/*exHeaderPrevYear+exHeaderPrevMonth*/,"<r><b><%year%>")
		oCalendar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
143:
Can I display some extra text/caption on the month's header

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:Appearance := 0/*None2*/
		oCalendar:SetProperty("Background",8/*exDateHeader*/,oCalendar:BackColor())
		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:MaxMonthX := 1
		oCalendar:MaxMonthY := 1
		oCalendar:DrawGridLine := 0/*Solid*/
		oCalendar:WeekDays := "Su Mo Tu We Th Fr Sa"
		oCalendar:MarkToday := .T.
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellHeight := 32
		oCalendar:FixedCellWidth := 32
		oCalendar:DateHeaderFormat := "(" + CHR(34) + "<sha ;;0>calendar" + CHR(34) + "[a=17]/1),2:32,3:32"
		oCalendar:SetProperty("HTMLPicture","up","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJZJJEIJUPDaMZkUAQGAOP4DRShOgvHIGQA0U5CbKzOIZYRIICzCaUX4PS4hRgEGg/QaKJLhGSESIIZoMfAMMIkKQzJxDDBJaCMaoQSABVhAXgQRBLRFdNhIB4QY4PfyUJB7AYAFo+DIWOb7LDdiIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","down","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIEM5BJpBhSxR4LfhhAsRKZJIhBKg4J7tRjJBIAEAMAjzWIJba0E5rWQcWaBAoFR7oK4HewRZCMPiMUDLXRoS4PfjCQJrEhdaJ5ET4YIvTgOJ5kFSTKpkFaTKLEFqTGxyFgTIyuMgCeJaPwDSIKEhlCT5ZoWFT4iIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("DateHeaderField",2/*exHeaderPrevMonth*/,"<c><img>up</img>")
		oCalendar:SetProperty("DateHeaderField",3/*exHeaderNextMonth*/,"<c><img>down</img>")
		oCalendar:SetProperty("DateHeaderField",1/*exHeaderDate*/,"<c><b><%month%>")
		oCalendar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
142:
How can I display no year on th month's header

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:Appearance := 0/*None2*/
		oCalendar:SetProperty("Background",8/*exDateHeader*/,oCalendar:BackColor())
		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:MaxMonthX := 2
		oCalendar:MaxMonthY := 2
		oCalendar:DrawGridLine := 0/*Solid*/
		oCalendar:WeekDays := "Su Mo Tu We Th Fr Sa"
		oCalendar:MarkToday := .T.
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellHeight := 32
		oCalendar:FixedCellWidth := 32
		oCalendar:DateHeaderFormat := "1,2:32,3:32"
		oCalendar:SetProperty("HTMLPicture","up","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJZJJEIJUPDaMZkUAQGAOP4DRShOgvHIGQA0U5CbKzOIZYRIICzCaUX4PS4hRgEGg/QaKJLhGSESIIZoMfAMMIkKQzJxDDBJaCMaoQSABVhAXgQRBLRFdNhIB4QY4PfyUJB7AYAFo+DIWOb7LDdiIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","down","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIEM5BJpBhSxR4LfhhAsRKZJIhBKg4J7tRjJBIAEAMAjzWIJba0E5rWQcWaBAoFR7oK4HewRZCMPiMUDLXRoS4PfjCQJrEhdaJ5ET4YIvTgOJ5kFSTKpkFaTKLEFqTGxyFgTIyuMgCeJaPwDSIKEhlCT5ZoWFT4iIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("DateHeaderField",2/*exHeaderPrevMonth*/,"<c><img>up</img>")
		oCalendar:SetProperty("DateHeaderField",3/*exHeaderNextMonth*/,"<c><img>down</img>")
		oCalendar:SetProperty("DateHeaderField",1/*exHeaderDate*/,"<c><b><%month%>")
		oCalendar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
141:
How can I arrange the month's header ( first and last month only, prev month, next, prev year, picture, ebn, expression)

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:Appearance := 0/*None2*/
		oCalendar:SetProperty("Background",8/*exDateHeader*/,oCalendar:BackColor())
		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:MaxMonthX := 2
		oCalendar:MaxMonthY := 2
		oCalendar:DrawGridLine := 0/*Solid*/
		oCalendar:WeekDays := "Su Mo Tu We Th Fr Sa"
		oCalendar:MarkToday := .T.
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellHeight := 32
		oCalendar:FixedCellWidth := 32
		oCalendar:DateHeaderFormat := " (( xmax * ymax ) = 1 ) ? `2[b=0][bg=0x01000000]:32,1,3[b=0][bg=0x01000000]:32` : ( ( x = 0 and y = 0 ) ? `2[b=0][bg=0x01000000]:32,1`: ( ( x = xmax - 1 and y = ymax - 1 ) ? `1,3[b=0][bg=0x01000000]:32`: `1` ) )"
		oCalendar:SetProperty("DateHeaderField",1/*exHeaderDate*/," ( ( ( month(value) = month(date(``) ) and ( year(value) = year(date(``) ) ) ) ) ? `<b><fgcolor=0000FF>` : `` ) + `<c><%month%></b> <off -6><font ;7><%year%>`")
		oCalendar:SetProperty("HTMLPicture","up","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJZJJEIJUPDaMZkUAQGAOP4DRShOgvHIGQA0U5CbKzOIZYRIICzCaUX4PS4hRgEGg/QaKJLhGSESIIZoMfAMMIkKQzJxDDBJaCMaoQSABVhAXgQRBLRFdNhIB4QY4PfyUJB7AYAFo+DIWOb7LDdiIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","down","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIEM5BJpBhSxR4LfhhAsRKZJIhBKg4J7tRjJBIAEAMAjzWIJba0E5rWQcWaBAoFR7oK4HewRZCMPiMUDLXRoS4PfjCQJrEhdaJ5ET4YIvTgOJ5kFSTKpkFaTKLEFqTGxyFgTIyuMgCeJaPwDSIKEhlCT5ZoWFT4iIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","left","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJUJJEIJUPDaMZkEANWACeJvMgBIwSGgXAaxGIQI6RMYAJBzFQQHYBeIzKQNYCpTIYAbwNQmMgAILNfAMEBKGYuAaIaxMGYDFD2ARVASRNBDNCeSAIDRCW7MAgDDDZDIAKbADgRVrfUCNiIAJJFJxEVxCMCCgI")
		oCalendar:SetProperty("HTMLPicture","right","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYc7YYBY5vVBkiJEJJEIJUHBPMbAARYUI0KKADJKEaDEpAVgAYjHYI8GSACgQb4AcRiGCPJgwNQIEzANIICaUUwpUDIBYjKIzBAsAZiWQ1QYABLZTKBAIATL2CUxXJdV8RABJIpOIiuIRgQUBA=")
		oCalendar:SetProperty("DateHeaderField",2/*exHeaderPrevMonth*/,"<c><img>up</img>")
		oCalendar:SetProperty("DateHeaderField",3/*exHeaderNextMonth*/,"<c><img>down</img>")
		oCalendar:SetProperty("DateHeaderField",4/*exHeaderPrevYear*/,"<c><img>left</img>")
		oCalendar:SetProperty("DateHeaderField",5/*exHeaderNextYear*/,"<c><img>right</img>")
		oAppearance := oCalendar:VisualAppearance()
			oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABFgDg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYIkWA5AiKEYoThCIxzTJ8aw3CKbYRAKCXfoUAJFP7Fc6ABJMBx3EyhZ89NDYEwTIKBahoehqIheEQyDSJNb2DCIahhMSEbKtCooDhGFpUWzLdxTJJVawHJoABjkS45PjEAJ+SBPUZVRRlFyfO7BKSjMKKXgkG4zABWVa1bC1FzxQ6mKykKQLQADDIDVZAeL3JTNCS5IyLLDtO77EqmZ5la7cUgRDj4AY7Ua+MzubBZaovOqDYzAey7TDWLRXFDNIzzTgQAyHHrETZHGqwJxMAEapYGqYpVi2HwzDuQ5oHKIQgggSSUGMOgdE4RhYDwJBVAwIQTH2UYhjQJBRAmZxuCEHZ3icJp5EgKxgAIVgCCQSQSEIBQkCAYhCAIJYKmKNIuFcTBIESPYEk6GBUm+" +;
		"BZOmOPgZgWYRTiYEwvEwaIEAAK4KnKOJrgmTpDjCbYJmKSI2CoOxihOLglCuAACioNg8COA4gmcOZOiidg+g+Dh4moOA8CMYokNmCoyiycQ8E8A4iE6D4OjOMgng8ZJjiITA8CSEouEcKwKkkLJyhQIoIkYU9LjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDyaICokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tEsHJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQg" +;
		"pDOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMAAAkoTADmMLpIjISp+HSS4PgyMAADBzAHDSIoPCOUpWjObIKE8NJOHKIwPEaTprBsHpdjWLB9AieQ+DQYwQAAMR1EOZxWi+bx7HcWQ8msfRYnnDZQACRwxgwc5rGaMZPE0ZxqjWNZtgyRwAAyTZEnuXJzEyAx2kQcxNkye5cEy3cYAcANrGAIH4OAhx3gNGGPAfgIR8jBA4McBMARVhnH4HQOYmxuCpF2MsecEQVBvGQCcIQug6itGQBoARAQ=")
		oCalendar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
140:
How can I arrange the month's header ( first month only, prev month, next, prev year, picture, ebn, expression)

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:Appearance := 0/*None2*/
		oCalendar:SetProperty("Background",8/*exDateHeader*/,oCalendar:BackColor())
		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:MaxMonthX := 2
		oCalendar:MaxMonthY := 2
		oCalendar:DrawGridLine := 0/*Solid*/
		oCalendar:WeekDays := "Su Mo Tu We Th Fr Sa"
		oCalendar:MarkToday := .T.
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellHeight := 32
		oCalendar:FixedCellWidth := 32
		oCalendar:DateHeaderFormat := "( x = 0 and y = 0 ) ? `(2[b=0][bg=0x01000000]/3[b=0][bg=0x01000000]):32,1`: `1`"
		oCalendar:SetProperty("DateHeaderField",1/*exHeaderDate*/," ( ( ( month(value) = month(date(``) ) and ( year(value) = year(date(``) ) ) ) ) ? `<b><fgcolor=0000FF>` : `` ) + `<c><%month%> <%year%>`")
		oCalendar:SetProperty("HTMLPicture","up","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJZJJEIJUPDaMZkUAQGAOP4DRShOgvHIGQA0U5CbKzOIZYRIICzCaUX4PS4hRgEGg/QaKJLhGSESIIZoMfAMMIkKQzJxDDBJaCMaoQSABVhAXgQRBLRFdNhIB4QY4PfyUJB7AYAFo+DIWOb7LDdiIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","down","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIEM5BJpBhSxR4LfhhAsRKZJIhBKg4J7tRjJBIAEAMAjzWIJba0E5rWQcWaBAoFR7oK4HewRZCMPiMUDLXRoS4PfjCQJrEhdaJ5ET4YIvTgOJ5kFSTKpkFaTKLEFqTGxyFgTIyuMgCeJaPwDSIKEhlCT5ZoWFT4iIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","left","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJUJJEIJUPDaMZkEANWACeJvMgBIwSGgXAaxGIQI6RMYAJBzFQQHYBeIzKQNYCpTIYAbwNQmMgAILNfAMEBKGYuAaIaxMGYDFD2ARVASRNBDNCeSAIDRCW7MAgDDDZDIAKbADgRVrfUCNiIAJJFJxEVxCMCCgI")
		oCalendar:SetProperty("HTMLPicture","right","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYc7YYBY5vVBkiJEJJEIJUHBPMbAARYUI0KKADJKEaDEpAVgAYjHYI8GSACgQb4AcRiGCPJgwNQIEzANIICaUUwpUDIBYjKIzBAsAZiWQ1QYABLZTKBAIATL2CUxXJdV8RABJIpOIiuIRgQUBA=")
		oCalendar:SetProperty("DateHeaderField",2/*exHeaderPrevMonth*/,"<c><img>up</img>")
		oCalendar:SetProperty("DateHeaderField",3/*exHeaderNextMonth*/,"<c><img>down</img>")
		oCalendar:SetProperty("DateHeaderField",4/*exHeaderPrevYear*/,"<c><img>left</img>")
		oCalendar:SetProperty("DateHeaderField",5/*exHeaderNextYear*/,"<c><img>right</img>")
		oAppearance := oCalendar:VisualAppearance()
			oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABFgDg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYIkWA5AiKEYoThCIxzTJ8aw3CKbYRAKCXfoUAJFP7Fc6ABJMBx3EyhZ89NDYEwTIKBahoehqIheEQyDSJNb2DCIahhMSEbKtCooDhGFpUWzLdxTJJVawHJoABjkS45PjEAJ+SBPUZVRRlFyfO7BKSjMKKXgkG4zABWVa1bC1FzxQ6mKykKQLQADDIDVZAeL3JTNCS5IyLLDtO77EqmZ5la7cUgRDj4AY7Ua+MzubBZaovOqDYzAey7TDWLRXFDNIzzTgQAyHHrETZHGqwJxMAEapYGqYpVi2HwzDuQ5oHKIQgggSSUGMOgdE4RhYDwJBVAwIQTH2UYhjQJBRAmZxuCEHZ3icJp5EgKxgAIVgCCQSQSEIBQkCAYhCAIJYKmKNIuFcTBIESPYEk6GBUm+" +;
		"BZOmOPgZgWYRTiYEwvEwaIEAAK4KnKOJrgmTpDjCbYJmKSI2CoOxihOLglCuAACioNg8COA4gmcOZOiidg+g+Dh4moOA8CMYokNmCoyiycQ8E8A4iE6D4OjOMgng8ZJjiITA8CSEouEcKwKkkLJyhQIoIkYU9LjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDyaICokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tEsHJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQg" +;
		"pDOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMAAAkoTADmMLpIjISp+HSS4PgyMAADBzAHDSIoPCOUpWjObIKE8NJOHKIwPEaTprBsHpdjWLB9AieQ+DQYwQAAMR1EOZxWi+bx7HcWQ8msfRYnnDZQACRwxgwc5rGaMZPE0ZxqjWNZtgyRwAAyTZEnuXJzEyAx2kQcxNkye5cEy3cYAcANrGAIH4OAhx3gNGGPAfgIR8jBA4McBMARVhnH4HQOYmxuCpF2MsecEQVBvGQCcIQug6itGQBoARAQ=")
		oCalendar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
139:
How can I arrange the month's header ( all, left, right, prev month, next, prev year, picture, ebn)

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:Appearance := 0/*None2*/
		oCalendar:SetProperty("Background",8/*exDateHeader*/,oCalendar:BackColor())
		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:MaxMonthX := 2
		oCalendar:MaxMonthY := 2
		oCalendar:DrawGridLine := 0/*Solid*/
		oCalendar:WeekDays := "Su Mo Tu We Th Fr Sa"
		oCalendar:MarkToday := .T.
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellHeight := 32
		oCalendar:FixedCellWidth := 32
		oCalendar:DateHeaderFormat := "(2[b=0][bg=0x01000000]/4[b=0][bg=0x01000000]):32,1,(3[b=0][bg=0x01000000]/5[b=0][bg=0x01000000]):32"
		oCalendar:SetProperty("DateHeaderField",1/*exHeaderDate*/," ( ( ( month(value) = month(date(``) ) and ( year(value) = year(date(``) ) ) ) ) ? `<b><fgcolor=0000FF>` : `` ) + `<c><%month%> <%year%>`")
		oCalendar:SetProperty("HTMLPicture","up","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJZJJEIJUPDaMZkUAQGAOP4DRShOgvHIGQA0U5CbKzOIZYRIICzCaUX4PS4hRgEGg/QaKJLhGSESIIZoMfAMMIkKQzJxDDBJaCMaoQSABVhAXgQRBLRFdNhIB4QY4PfyUJB7AYAFo+DIWOb7LDdiIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","down","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIEM5BJpBhSxR4LfhhAsRKZJIhBKg4J7tRjJBIAEAMAjzWIJba0E5rWQcWaBAoFR7oK4HewRZCMPiMUDLXRoS4PfjCQJrEhdaJ5ET4YIvTgOJ5kFSTKpkFaTKLEFqTGxyFgTIyuMgCeJaPwDSIKEhlCT5ZoWFT4iIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","left","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJUJJEIJUPDaMZkEANWACeJvMgBIwSGgXAaxGIQI6RMYAJBzFQQHYBeIzKQNYCpTIYAbwNQmMgAILNfAMEBKGYuAaIaxMGYDFD2ARVASRNBDNCeSAIDRCW7MAgDDDZDIAKbADgRVrfUCNiIAJJFJxEVxCMCCgI")
		oCalendar:SetProperty("HTMLPicture","right","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYc7YYBY5vVBkiJEJJEIJUHBPMbAARYUI0KKADJKEaDEpAVgAYjHYI8GSACgQb4AcRiGCPJgwNQIEzANIICaUUwpUDIBYjKIzBAsAZiWQ1QYABLZTKBAIATL2CUxXJdV8RABJIpOIiuIRgQUBA=")
		oCalendar:SetProperty("DateHeaderField",2/*exHeaderPrevMonth*/,"<c><img>up</img>")
		oCalendar:SetProperty("DateHeaderField",3/*exHeaderNextMonth*/,"<c><img>down</img>")
		oCalendar:SetProperty("DateHeaderField",4/*exHeaderPrevYear*/,"<c><img>left</img>")
		oCalendar:SetProperty("DateHeaderField",5/*exHeaderNextYear*/,"<c><img>right</img>")
		oAppearance := oCalendar:VisualAppearance()
			oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABFgDg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYIkWA5AiKEYoThCIxzTJ8aw3CKbYRAKCXfoUAJFP7Fc6ABJMBx3EyhZ89NDYEwTIKBahoehqIheEQyDSJNb2DCIahhMSEbKtCooDhGFpUWzLdxTJJVawHJoABjkS45PjEAJ+SBPUZVRRlFyfO7BKSjMKKXgkG4zABWVa1bC1FzxQ6mKykKQLQADDIDVZAeL3JTNCS5IyLLDtO77EqmZ5la7cUgRDj4AY7Ua+MzubBZaovOqDYzAey7TDWLRXFDNIzzTgQAyHHrETZHGqwJxMAEapYGqYpVi2HwzDuQ5oHKIQgggSSUGMOgdE4RhYDwJBVAwIQTH2UYhjQJBRAmZxuCEHZ3icJp5EgKxgAIVgCCQSQSEIBQkCAYhCAIJYKmKNIuFcTBIESPYEk6GBUm+" +;
		"BZOmOPgZgWYRTiYEwvEwaIEAAK4KnKOJrgmTpDjCbYJmKSI2CoOxihOLglCuAACioNg8COA4gmcOZOiidg+g+Dh4moOA8CMYokNmCoyiycQ8E8A4iE6D4OjOMgng8ZJjiITA8CSEouEcKwKkkLJyhQIoIkYU9LjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDyaICokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tEsHJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQg" +;
		"pDOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMAAAkoTADmMLpIjISp+HSS4PgyMAADBzAHDSIoPCOUpWjObIKE8NJOHKIwPEaTprBsHpdjWLB9AieQ+DQYwQAAMR1EOZxWi+bx7HcWQ8msfRYnnDZQACRwxgwc5rGaMZPE0ZxqjWNZtgyRwAAyTZEnuXJzEyAx2kQcxNkye5cEy3cYAcANrGAIH4OAhx3gNGGPAfgIR8jBA4McBMARVhnH4HQOYmxuCpF2MsecEQVBvGQCcIQug6itGQBoARAQ=")
		oCalendar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
138:
How can I arrange the month's header ( all, left, right, prev month, next, prev year, picture, ebn)

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:Appearance := 0/*None2*/
		oCalendar:SetProperty("Background",8/*exDateHeader*/,oCalendar:BackColor())
		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:MaxMonthX := 2
		oCalendar:MaxMonthY := 2
		oCalendar:DrawGridLine := 0/*Solid*/
		oCalendar:WeekDays := "Su Mo Tu We Th Fr Sa"
		oCalendar:MarkToday := .T.
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellHeight := 32
		oCalendar:FixedCellWidth := 32
		oCalendar:DateHeaderFormat := "2[b=0][bg=0x01000000]:32,3[b=0][bg=0x01000000]:32,1,4[b=0][bg=0x01000000]:32,5[b=0][bg=0x01000000]:32"
		oCalendar:SetProperty("DateHeaderField",1/*exHeaderDate*/," ( ( ( month(value) = month(date(``) ) and ( year(value) = year(date(``) ) ) ) ) ? `<b><fgcolor=0000FF>` : `` ) + `<c><%month%> <%year%>`")
		oCalendar:SetProperty("HTMLPicture","up","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJZJJEIJUPDaMZkUAQGAOP4DRShOgvHIGQA0U5CbKzOIZYRIICzCaUX4PS4hRgEGg/QaKJLhGSESIIZoMfAMMIkKQzJxDDBJaCMaoQSABVhAXgQRBLRFdNhIB4QY4PfyUJB7AYAFo+DIWOb7LDdiIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","down","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIEM5BJpBhSxR4LfhhAsRKZJIhBKg4J7tRjJBIAEAMAjzWIJba0E5rWQcWaBAoFR7oK4HewRZCMPiMUDLXRoS4PfjCQJrEhdaJ5ET4YIvTgOJ5kFSTKpkFaTKLEFqTGxyFgTIyuMgCeJaPwDSIKEhlCT5ZoWFT4iIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","left","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJUJJEIJUPDaMZkEANWACeJvMgBIwSGgXAaxGIQI6RMYAJBzFQQHYBeIzKQNYCpTIYAbwNQmMgAILNfAMEBKGYuAaIaxMGYDFD2ARVASRNBDNCeSAIDRCW7MAgDDDZDIAKbADgRVrfUCNiIAJJFJxEVxCMCCgI")
		oCalendar:SetProperty("HTMLPicture","right","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYc7YYBY5vVBkiJEJJEIJUHBPMbAARYUI0KKADJKEaDEpAVgAYjHYI8GSACgQb4AcRiGCPJgwNQIEzANIICaUUwpUDIBYjKIzBAsAZiWQ1QYABLZTKBAIATL2CUxXJdV8RABJIpOIiuIRgQUBA=")
		oCalendar:SetProperty("DateHeaderField",2/*exHeaderPrevMonth*/,"<c><img>up</img>")
		oCalendar:SetProperty("DateHeaderField",3/*exHeaderNextMonth*/,"<c><img>down</img>")
		oCalendar:SetProperty("DateHeaderField",4/*exHeaderPrevYear*/,"<c><img>left</img>")
		oCalendar:SetProperty("DateHeaderField",5/*exHeaderNextYear*/,"<c><img>right</img>")
		oAppearance := oCalendar:VisualAppearance()
			oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABFgDg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYIkWA5AiKEYoThCIxzTJ8aw3CKbYRAKCXfoUAJFP7Fc6ABJMBx3EyhZ89NDYEwTIKBahoehqIheEQyDSJNb2DCIahhMSEbKtCooDhGFpUWzLdxTJJVawHJoABjkS45PjEAJ+SBPUZVRRlFyfO7BKSjMKKXgkG4zABWVa1bC1FzxQ6mKykKQLQADDIDVZAeL3JTNCS5IyLLDtO77EqmZ5la7cUgRDj4AY7Ua+MzubBZaovOqDYzAey7TDWLRXFDNIzzTgQAyHHrETZHGqwJxMAEapYGqYpVi2HwzDuQ5oHKIQgggSSUGMOgdE4RhYDwJBVAwIQTH2UYhjQJBRAmZxuCEHZ3icJp5EgKxgAIVgCCQSQSEIBQkCAYhCAIJYKmKNIuFcTBIESPYEk6GBUm+" +;
		"BZOmOPgZgWYRTiYEwvEwaIEAAK4KnKOJrgmTpDjCbYJmKSI2CoOxihOLglCuAACioNg8COA4gmcOZOiidg+g+Dh4moOA8CMYokNmCoyiycQ8E8A4iE6D4OjOMgng8ZJjiITA8CSEouEcKwKkkLJyhQIoIkYU9LjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDyaICokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tEsHJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQg" +;
		"pDOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMAAAkoTADmMLpIjISp+HSS4PgyMAADBzAHDSIoPCOUpWjObIKE8NJOHKIwPEaTprBsHpdjWLB9AieQ+DQYwQAAMR1EOZxWi+bx7HcWQ8msfRYnnDZQACRwxgwc5rGaMZPE0ZxqjWNZtgyRwAAyTZEnuXJzEyAx2kQcxNkye5cEy3cYAcANrGAIH4OAhx3gNGGPAfgIR8jBA4McBMARVhnH4HQOYmxuCpF2MsecEQVBvGQCcIQug6itGQBoARAQ=")
		oCalendar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
137:
How can I arrange the month's header ( left, right, prev month, next, prev year, picture, ebn)

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:Appearance := 0/*None2*/
		oCalendar:SetProperty("Background",8/*exDateHeader*/,oCalendar:BackColor())
		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:MaxMonthX := 2
		oCalendar:MaxMonthY := 2
		oCalendar:DrawGridLine := 0/*Solid*/
		oCalendar:WeekDays := "Su Mo Tu We Th Fr Sa"
		oCalendar:MarkToday := .T.
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellHeight := 32
		oCalendar:FixedCellWidth := 32
		oCalendar:DateHeaderFormat := "(2[b=0][bg=0x01000000]/3[b=0][bg=0x01000000]):32,1,(4[b=0][bg=0x01000000]/5[b=0][bg=0x01000000]):32"
		oCalendar:SetProperty("DateHeaderField",1/*exHeaderDate*/," ( ( ( month(value) = month(date(``) ) and ( year(value) = year(date(``) ) ) ) ) ? `<b><fgcolor=0000FF>` : `` ) + `<c><%month%> <%year%>`")
		oCalendar:SetProperty("HTMLPicture","up","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJZJJEIJUPDaMZkUAQGAOP4DRShOgvHIGQA0U5CbKzOIZYRIICzCaUX4PS4hRgEGg/QaKJLhGSESIIZoMfAMMIkKQzJxDDBJaCMaoQSABVhAXgQRBLRFdNhIB4QY4PfyUJB7AYAFo+DIWOb7LDdiIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","down","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIEM5BJpBhSxR4LfhhAsRKZJIhBKg4J7tRjJBIAEAMAjzWIJba0E5rWQcWaBAoFR7oK4HewRZCMPiMUDLXRoS4PfjCQJrEhdaJ5ET4YIvTgOJ5kFSTKpkFaTKLEFqTGxyFgTIyuMgCeJaPwDSIKEhlCT5ZoWFT4iIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","left","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJUJJEIJUPDaMZkEANWACeJvMgBIwSGgXAaxGIQI6RMYAJBzFQQHYBeIzKQNYCpTIYAbwNQmMgAILNfAMEBKGYuAaIaxMGYDFD2ARVASRNBDNCeSAIDRCW7MAgDDDZDIAKbADgRVrfUCNiIAJJFJxEVxCMCCgI")
		oCalendar:SetProperty("HTMLPicture","right","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYc7YYBY5vVBkiJEJJEIJUHBPMbAARYUI0KKADJKEaDEpAVgAYjHYI8GSACgQb4AcRiGCPJgwNQIEzANIICaUUwpUDIBYjKIzBAsAZiWQ1QYABLZTKBAIATL2CUxXJdV8RABJIpOIiuIRgQUBA=")
		oCalendar:SetProperty("DateHeaderField",2/*exHeaderPrevMonth*/,"<c><img>up</img>")
		oCalendar:SetProperty("DateHeaderField",3/*exHeaderNextMonth*/,"<c><img>down</img>")
		oCalendar:SetProperty("DateHeaderField",4/*exHeaderPrevYear*/,"<c><img>left</img>")
		oCalendar:SetProperty("DateHeaderField",5/*exHeaderNextYear*/,"<c><img>right</img>")
		oAppearance := oCalendar:VisualAppearance()
			oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABFgDg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYIkWA5AiKEYoThCIxzTJ8aw3CKbYRAKCXfoUAJFP7Fc6ABJMBx3EyhZ89NDYEwTIKBahoehqIheEQyDSJNb2DCIahhMSEbKtCooDhGFpUWzLdxTJJVawHJoABjkS45PjEAJ+SBPUZVRRlFyfO7BKSjMKKXgkG4zABWVa1bC1FzxQ6mKykKQLQADDIDVZAeL3JTNCS5IyLLDtO77EqmZ5la7cUgRDj4AY7Ua+MzubBZaovOqDYzAey7TDWLRXFDNIzzTgQAyHHrETZHGqwJxMAEapYGqYpVi2HwzDuQ5oHKIQgggSSUGMOgdE4RhYDwJBVAwIQTH2UYhjQJBRAmZxuCEHZ3icJp5EgKxgAIVgCCQSQSEIBQkCAYhCAIJYKmKNIuFcTBIESPYEk6GBUm+" +;
		"BZOmOPgZgWYRTiYEwvEwaIEAAK4KnKOJrgmTpDjCbYJmKSI2CoOxihOLglCuAACioNg8COA4gmcOZOiidg+g+Dh4moOA8CMYokNmCoyiycQ8E8A4iE6D4OjOMgng8ZJjiITA8CSEouEcKwKkkLJyhQIoIkYU9LjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDyaICokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tEsHJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQg" +;
		"pDOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMAAAkoTADmMLpIjISp+HSS4PgyMAADBzAHDSIoPCOUpWjObIKE8NJOHKIwPEaTprBsHpdjWLB9AieQ+DQYwQAAMR1EOZxWi+bx7HcWQ8msfRYnnDZQACRwxgwc5rGaMZPE0ZxqjWNZtgyRwAAyTZEnuXJzEyAx2kQcxNkye5cEy3cYAcANrGAIH4OAhx3gNGGPAfgIR8jBA4McBMARVhnH4HQOYmxuCpF2MsecEQVBvGQCcIQug6itGQBoARAQ=")
		oCalendar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
136:
How can I arrange the month's header ( down, next, prev month, next, prev year, picture, ebn)

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:Appearance := 0/*None2*/
		oCalendar:SetProperty("Background",8/*exDateHeader*/,oCalendar:BackColor())
		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:MaxMonthX := 2
		oCalendar:MaxMonthY := 2
		oCalendar:DrawGridLine := 0/*Solid*/
		oCalendar:WeekDays := "Su Mo Tu We Th Fr Sa"
		oCalendar:MarkToday := .T.
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellHeight := 32
		oCalendar:FixedCellWidth := 32
		oCalendar:DateHeaderFormat := "1/16;(2[bg=0x01808080],3[bg=0x01000000])[b=15],(4[bg=0x01808080],5[bg=0x01000000])[b=15]"
		oCalendar:SetProperty("DateHeaderField",1/*exHeaderDate*/," ( ( ( month(value) = month(date(``) ) and ( year(value) = year(date(``) ) ) ) ) ? `<b><fgcolor=0000FF>` : `` ) + `<c><%month%> <%year%>`")
		oCalendar:SetProperty("HTMLPicture","up","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJZJJEIJUPDaMZkUAQGAOP4DRShOgvHIGQA0U5CbKzOIZYRIICzCaUX4PS4hRgEGg/QaKJLhGSESIIZoMfAMMIkKQzJxDDBJaCMaoQSABVhAXgQRBLRFdNhIB4QY4PfyUJB7AYAFo+DIWOb7LDdiIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","down","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIEM5BJpBhSxR4LfhhAsRKZJIhBKg4J7tRjJBIAEAMAjzWIJba0E5rWQcWaBAoFR7oK4HewRZCMPiMUDLXRoS4PfjCQJrEhdaJ5ET4YIvTgOJ5kFSTKpkFaTKLEFqTGxyFgTIyuMgCeJaPwDSIKEhlCT5ZoWFT4iIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","left","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJUJJEIJUPDaMZkEANWACeJvMgBIwSGgXAaxGIQI6RMYAJBzFQQHYBeIzKQNYCpTIYAbwNQmMgAILNfAMEBKGYuAaIaxMGYDFD2ARVASRNBDNCeSAIDRCW7MAgDDDZDIAKbADgRVrfUCNiIAJJFJxEVxCMCCgI")
		oCalendar:SetProperty("HTMLPicture","right","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYc7YYBY5vVBkiJEJJEIJUHBPMbAARYUI0KKADJKEaDEpAVgAYjHYI8GSACgQb4AcRiGCPJgwNQIEzANIICaUUwpUDIBYjKIzBAsAZiWQ1QYABLZTKBAIATL2CUxXJdV8RABJIpOIiuIRgQUBA=")
		oCalendar:SetProperty("DateHeaderField",2/*exHeaderPrevMonth*/,"<c><img>up</img>")
		oCalendar:SetProperty("DateHeaderField",3/*exHeaderNextMonth*/,"<c><img>down</img>")
		oCalendar:SetProperty("DateHeaderField",4/*exHeaderPrevYear*/,"<c><img>left</img>")
		oCalendar:SetProperty("DateHeaderField",5/*exHeaderNextYear*/,"<c><img>right</img>")
		oAppearance := oCalendar:VisualAppearance()
			oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABFgDg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYIkWA5AiKEYoThCIxzTJ8aw3CKbYRAKCXfoUAJFP7Fc6ABJMBx3EyhZ89NDYEwTIKBahoehqIheEQyDSJNb2DCIahhMSEbKtCooDhGFpUWzLdxTJJVawHJoABjkS45PjEAJ+SBPUZVRRlFyfO7BKSjMKKXgkG4zABWVa1bC1FzxQ6mKykKQLQADDIDVZAeL3JTNCS5IyLLDtO77EqmZ5la7cUgRDj4AY7Ua+MzubBZaovOqDYzAey7TDWLRXFDNIzzTgQAyHHrETZHGqwJxMAEapYGqYpVi2HwzDuQ5oHKIQgggSSUGMOgdE4RhYDwJBVAwIQTH2UYhjQJBRAmZxuCEHZ3icJp5EgKxgAIVgCCQSQSEIBQkCAYhCAIJYKmKNIuFcTBIESPYEk6GBUm+" +;
		"BZOmOPgZgWYRTiYEwvEwaIEAAK4KnKOJrgmTpDjCbYJmKSI2CoOxihOLglCuAACioNg8COA4gmcOZOiidg+g+Dh4moOA8CMYokNmCoyiycQ8E8A4iE6D4OjOMgng8ZJjiITA8CSEouEcKwKkkLJyhQIoIkYU9LjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDyaICokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tEsHJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQg" +;
		"pDOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMAAAkoTADmMLpIjISp+HSS4PgyMAADBzAHDSIoPCOUpWjObIKE8NJOHKIwPEaTprBsHpdjWLB9AieQ+DQYwQAAMR1EOZxWi+bx7HcWQ8msfRYnnDZQACRwxgwc5rGaMZPE0ZxqjWNZtgyRwAAyTZEnuXJzEyAx2kQcxNkye5cEy3cYAcANrGAIH4OAhx3gNGGPAfgIR8jBA4McBMARVhnH4HQOYmxuCpF2MsecEQVBvGQCcIQug6itGQBoARAQ=")
		oCalendar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
135:
How can I arrange the month's header ( down, next, prev month, picture, ebn)

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:Appearance := 0/*None2*/
		oCalendar:SetProperty("Background",8/*exDateHeader*/,oCalendar:BackColor())
		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:MaxMonthX := 2
		oCalendar:MaxMonthY := 2
		oCalendar:DrawGridLine := 0/*Solid*/
		oCalendar:WeekDays := "Su Mo Tu We Th Fr Sa"
		oCalendar:MarkToday := .T.
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellHeight := 32
		oCalendar:FixedCellWidth := 32
		oCalendar:DateHeaderFormat := "1/16;2[b=0][bg=0x01000000],3[b=0][bg=0x01000000]"
		oCalendar:SetProperty("DateHeaderField",1/*exHeaderDate*/," ( ( ( month(value) = month(date(``) ) and ( year(value) = year(date(``) ) ) ) ) ? `<b><fgcolor=0000FF>` : `` ) + `<c><%month%> <%year%>`")
		oCalendar:SetProperty("HTMLPicture","up","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJZJJEIJUPDaMZkUAQGAOP4DRShOgvHIGQA0U5CbKzOIZYRIICzCaUX4PS4hRgEGg/QaKJLhGSESIIZoMfAMMIkKQzJxDDBJaCMaoQSABVhAXgQRBLRFdNhIB4QY4PfyUJB7AYAFo+DIWOb7LDdiIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","down","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIEM5BJpBhSxR4LfhhAsRKZJIhBKg4J7tRjJBIAEAMAjzWIJba0E5rWQcWaBAoFR7oK4HewRZCMPiMUDLXRoS4PfjCQJrEhdaJ5ET4YIvTgOJ5kFSTKpkFaTKLEFqTGxyFgTIyuMgCeJaPwDSIKEhlCT5ZoWFT4iIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","left","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJUJJEIJUPDaMZkEANWACeJvMgBIwSGgXAaxGIQI6RMYAJBzFQQHYBeIzKQNYCpTIYAbwNQmMgAILNfAMEBKGYuAaIaxMGYDFD2ARVASRNBDNCeSAIDRCW7MAgDDDZDIAKbADgRVrfUCNiIAJJFJxEVxCMCCgI")
		oCalendar:SetProperty("HTMLPicture","right","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYc7YYBY5vVBkiJEJJEIJUHBPMbAARYUI0KKADJKEaDEpAVgAYjHYI8GSACgQb4AcRiGCPJgwNQIEzANIICaUUwpUDIBYjKIzBAsAZiWQ1QYABLZTKBAIATL2CUxXJdV8RABJIpOIiuIRgQUBA=")
		oCalendar:SetProperty("DateHeaderField",2/*exHeaderPrevMonth*/,"<c><img>up</img>")
		oCalendar:SetProperty("DateHeaderField",3/*exHeaderNextMonth*/,"<c><img>down</img>")
		oCalendar:SetProperty("DateHeaderField",4/*exHeaderPrevYear*/,"<c><img>left</img>")
		oCalendar:SetProperty("DateHeaderField",5/*exHeaderNextYear*/,"<c><img>right</img>")
		oAppearance := oCalendar:VisualAppearance()
			oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABFgDg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYIkWA5AiKEYoThCIxzTJ8aw3CKbYRAKCXfoUAJFP7Fc6ABJMBx3EyhZ89NDYEwTIKBahoehqIheEQyDSJNb2DCIahhMSEbKtCooDhGFpUWzLdxTJJVawHJoABjkS45PjEAJ+SBPUZVRRlFyfO7BKSjMKKXgkG4zABWVa1bC1FzxQ6mKykKQLQADDIDVZAeL3JTNCS5IyLLDtO77EqmZ5la7cUgRDj4AY7Ua+MzubBZaovOqDYzAey7TDWLRXFDNIzzTgQAyHHrETZHGqwJxMAEapYGqYpVi2HwzDuQ5oHKIQgggSSUGMOgdE4RhYDwJBVAwIQTH2UYhjQJBRAmZxuCEHZ3icJp5EgKxgAIVgCCQSQSEIBQkCAYhCAIJYKmKNIuFcTBIESPYEk6GBUm+" +;
		"BZOmOPgZgWYRTiYEwvEwaIEAAK4KnKOJrgmTpDjCbYJmKSI2CoOxihOLglCuAACioNg8COA4gmcOZOiidg+g+Dh4moOA8CMYokNmCoyiycQ8E8A4iE6D4OjOMgng8ZJjiITA8CSEouEcKwKkkLJyhQIoIkYU9LjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDyaICokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tEsHJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQg" +;
		"pDOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMAAAkoTADmMLpIjISp+HSS4PgyMAADBzAHDSIoPCOUpWjObIKE8NJOHKIwPEaTprBsHpdjWLB9AieQ+DQYwQAAMR1EOZxWi+bx7HcWQ8msfRYnnDZQACRwxgwc5rGaMZPE0ZxqjWNZtgyRwAAyTZEnuXJzEyAx2kQcxNkye5cEy3cYAcANrGAIH4OAhx3gNGGPAfgIR8jBA4McBMARVhnH4HQOYmxuCpF2MsecEQVBvGQCcIQug6itGQBoARAQ=")
		oCalendar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
134:
How can I arrange the month's header ( left, right center, next, prev month, picture, ebn)

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:Appearance := 0/*None2*/
		oCalendar:SetProperty("Background",8/*exDateHeader*/,oCalendar:BackColor())
		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:MaxMonthX := 2
		oCalendar:MaxMonthY := 2
		oCalendar:DrawGridLine := 0/*Solid*/
		oCalendar:WeekDays := "Su Mo Tu We Th Fr Sa"
		oCalendar:MarkToday := .T.
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellHeight := 32
		oCalendar:FixedCellWidth := 32
		oCalendar:DateHeaderFormat := "2[b=0][bg=0x01000000],1,3[b=0][bg=0x01000000]"
		oCalendar:SetProperty("DateHeaderField",1/*exHeaderDate*/," ( ( ( month(value) = month(date(``) ) and ( year(value) = year(date(``) ) ) ) ) ? `<b><fgcolor=0000FF>` : `` ) + `<c><%month%> <%year%>`")
		oCalendar:SetProperty("HTMLPicture","up","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJZJJEIJUPDaMZkUAQGAOP4DRShOgvHIGQA0U5CbKzOIZYRIICzCaUX4PS4hRgEGg/QaKJLhGSESIIZoMfAMMIkKQzJxDDBJaCMaoQSABVhAXgQRBLRFdNhIB4QY4PfyUJB7AYAFo+DIWOb7LDdiIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","down","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIEM5BJpBhSxR4LfhhAsRKZJIhBKg4J7tRjJBIAEAMAjzWIJba0E5rWQcWaBAoFR7oK4HewRZCMPiMUDLXRoS4PfjCQJrEhdaJ5ET4YIvTgOJ5kFSTKpkFaTKLEFqTGxyFgTIyuMgCeJaPwDSIKEhlCT5ZoWFT4iIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","left","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJUJJEIJUPDaMZkEANWACeJvMgBIwSGgXAaxGIQI6RMYAJBzFQQHYBeIzKQNYCpTIYAbwNQmMgAILNfAMEBKGYuAaIaxMGYDFD2ARVASRNBDNCeSAIDRCW7MAgDDDZDIAKbADgRVrfUCNiIAJJFJxEVxCMCCgI")
		oCalendar:SetProperty("HTMLPicture","right","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYc7YYBY5vVBkiJEJJEIJUHBPMbAARYUI0KKADJKEaDEpAVgAYjHYI8GSACgQb4AcRiGCPJgwNQIEzANIICaUUwpUDIBYjKIzBAsAZiWQ1QYABLZTKBAIATL2CUxXJdV8RABJIpOIiuIRgQUBA=")
		oCalendar:SetProperty("DateHeaderField",2/*exHeaderPrevMonth*/,"<c><img>up</img>")
		oCalendar:SetProperty("DateHeaderField",3/*exHeaderNextMonth*/,"<c><img>down</img>")
		oCalendar:SetProperty("DateHeaderField",4/*exHeaderPrevYear*/,"<c><img>left</img>")
		oCalendar:SetProperty("DateHeaderField",5/*exHeaderNextYear*/,"<c><img>right</img>")
		oAppearance := oCalendar:VisualAppearance()
			oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABFgDg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYIkWA5AiKEYoThCIxzTJ8aw3CKbYRAKCXfoUAJFP7Fc6ABJMBx3EyhZ89NDYEwTIKBahoehqIheEQyDSJNb2DCIahhMSEbKtCooDhGFpUWzLdxTJJVawHJoABjkS45PjEAJ+SBPUZVRRlFyfO7BKSjMKKXgkG4zABWVa1bC1FzxQ6mKykKQLQADDIDVZAeL3JTNCS5IyLLDtO77EqmZ5la7cUgRDj4AY7Ua+MzubBZaovOqDYzAey7TDWLRXFDNIzzTgQAyHHrETZHGqwJxMAEapYGqYpVi2HwzDuQ5oHKIQgggSSUGMOgdE4RhYDwJBVAwIQTH2UYhjQJBRAmZxuCEHZ3icJp5EgKxgAIVgCCQSQSEIBQkCAYhCAIJYKmKNIuFcTBIESPYEk6GBUm+" +;
		"BZOmOPgZgWYRTiYEwvEwaIEAAK4KnKOJrgmTpDjCbYJmKSI2CoOxihOLglCuAACioNg8COA4gmcOZOiidg+g+Dh4moOA8CMYokNmCoyiycQ8E8A4iE6D4OjOMgng8ZJjiITA8CSEouEcKwKkkLJyhQIoIkYU9LjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDyaICokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tEsHJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQg" +;
		"pDOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMAAAkoTADmMLpIjISp+HSS4PgyMAADBzAHDSIoPCOUpWjObIKE8NJOHKIwPEaTprBsHpdjWLB9AieQ+DQYwQAAMR1EOZxWi+bx7HcWQ8msfRYnnDZQACRwxgwc5rGaMZPE0ZxqjWNZtgyRwAAyTZEnuXJzEyAx2kQcxNkye5cEy3cYAcANrGAIH4OAhx3gNGGPAfgIR8jBA4McBMARVhnH4HQOYmxuCpF2MsecEQVBvGQCcIQug6itGQBoARAQ=")
		oCalendar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
133:
How can I arrange the month's header (right up down, next, prev month, picture, ebn)

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:Appearance := 0/*None2*/
		oCalendar:SetProperty("Background",8/*exDateHeader*/,oCalendar:BackColor())
		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:MaxMonthX := 2
		oCalendar:MaxMonthY := 2
		oCalendar:DrawGridLine := 0/*Solid*/
		oCalendar:WeekDays := "Su Mo Tu We Th Fr Sa"
		oCalendar:MarkToday := .T.
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellHeight := 32
		oCalendar:FixedCellWidth := 32
		oCalendar:DateHeaderFormat := "1,(2[b=0][bg=0x01000000]/3[b=0][bg=0x01000000]):32"
		oCalendar:SetProperty("DateHeaderField",1/*exHeaderDate*/," ( ( ( month(value) = month(date(``) ) and ( year(value) = year(date(``) ) ) ) ) ? `<b><fgcolor=0000FF>` : `` ) + `<c><%month%> <%year%>`")
		oCalendar:SetProperty("HTMLPicture","up","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJZJJEIJUPDaMZkUAQGAOP4DRShOgvHIGQA0U5CbKzOIZYRIICzCaUX4PS4hRgEGg/QaKJLhGSESIIZoMfAMMIkKQzJxDDBJaCMaoQSABVhAXgQRBLRFdNhIB4QY4PfyUJB7AYAFo+DIWOb7LDdiIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","down","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIEM5BJpBhSxR4LfhhAsRKZJIhBKg4J7tRjJBIAEAMAjzWIJba0E5rWQcWaBAoFR7oK4HewRZCMPiMUDLXRoS4PfjCQJrEhdaJ5ET4YIvTgOJ5kFSTKpkFaTKLEFqTGxyFgTIyuMgCeJaPwDSIKEhlCT5ZoWFT4iIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","left","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJUJJEIJUPDaMZkEANWACeJvMgBIwSGgXAaxGIQI6RMYAJBzFQQHYBeIzKQNYCpTIYAbwNQmMgAILNfAMEBKGYuAaIaxMGYDFD2ARVASRNBDNCeSAIDRCW7MAgDDDZDIAKbADgRVrfUCNiIAJJFJxEVxCMCCgI")
		oCalendar:SetProperty("HTMLPicture","right","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYc7YYBY5vVBkiJEJJEIJUHBPMbAARYUI0KKADJKEaDEpAVgAYjHYI8GSACgQb4AcRiGCPJgwNQIEzANIICaUUwpUDIBYjKIzBAsAZiWQ1QYABLZTKBAIATL2CUxXJdV8RABJIpOIiuIRgQUBA=")
		oCalendar:SetProperty("DateHeaderField",2/*exHeaderPrevMonth*/,"<c><img>up</img>")
		oCalendar:SetProperty("DateHeaderField",3/*exHeaderNextMonth*/,"<c><img>down</img>")
		oCalendar:SetProperty("DateHeaderField",4/*exHeaderPrevYear*/,"<c><img>left</img>")
		oCalendar:SetProperty("DateHeaderField",5/*exHeaderNextYear*/,"<c><img>right</img>")
		oAppearance := oCalendar:VisualAppearance()
			oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABFgDg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYIkWA5AiKEYoThCIxzTJ8aw3CKbYRAKCXfoUAJFP7Fc6ABJMBx3EyhZ89NDYEwTIKBahoehqIheEQyDSJNb2DCIahhMSEbKtCooDhGFpUWzLdxTJJVawHJoABjkS45PjEAJ+SBPUZVRRlFyfO7BKSjMKKXgkG4zABWVa1bC1FzxQ6mKykKQLQADDIDVZAeL3JTNCS5IyLLDtO77EqmZ5la7cUgRDj4AY7Ua+MzubBZaovOqDYzAey7TDWLRXFDNIzzTgQAyHHrETZHGqwJxMAEapYGqYpVi2HwzDuQ5oHKIQgggSSUGMOgdE4RhYDwJBVAwIQTH2UYhjQJBRAmZxuCEHZ3icJp5EgKxgAIVgCCQSQSEIBQkCAYhCAIJYKmKNIuFcTBIESPYEk6GBUm+" +;
		"BZOmOPgZgWYRTiYEwvEwaIEAAK4KnKOJrgmTpDjCbYJmKSI2CoOxihOLglCuAACioNg8COA4gmcOZOiidg+g+Dh4moOA8CMYokNmCoyiycQ8E8A4iE6D4OjOMgng8ZJjiITA8CSEouEcKwKkkLJyhQIoIkYU9LjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDyaICokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tEsHJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQg" +;
		"pDOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMAAAkoTADmMLpIjISp+HSS4PgyMAADBzAHDSIoPCOUpWjObIKE8NJOHKIwPEaTprBsHpdjWLB9AieQ+DQYwQAAMR1EOZxWi+bx7HcWQ8msfRYnnDZQACRwxgwc5rGaMZPE0ZxqjWNZtgyRwAAyTZEnuXJzEyAx2kQcxNkye5cEy3cYAcANrGAIH4OAhx3gNGGPAfgIR8jBA4McBMARVhnH4HQOYmxuCpF2MsecEQVBvGQCcIQug6itGQBoARAQ=")
		oCalendar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
132:
How can I arrange the month's header (left, next, prev month, picture, ebn)

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:Appearance := 0/*None2*/
		oCalendar:SetProperty("Background",8/*exDateHeader*/,oCalendar:BackColor())
		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:MaxMonthX := 2
		oCalendar:MaxMonthY := 2
		oCalendar:DrawGridLine := 0/*Solid*/
		oCalendar:WeekDays := "Su Mo Tu We Th Fr Sa"
		oCalendar:MarkToday := .T.
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellHeight := 32
		oCalendar:FixedCellWidth := 32
		oCalendar:DateHeaderFormat := "(" + CHR(34) + "" + CHR(34) + "[b=0],(" + CHR(34) + "" + CHR(34) + "[b=0]/24;2[b=0][bg=0x01000000]/" + CHR(34) + "" + CHR(34) + "[b=0]):24," + CHR(34) + "" + CHR(34) + "[b=0]):32,(" + CHR(34) + "" + CHR(34) + "[b=0],(" + CHR(34) + "" + CHR(34) + "[b=0]/24;3[b=0][bg=0x01000000]/" + CHR(34) + "" + CHR(34) + "[b=0]):24," + CHR(34) + "" + CHR(34) + "[b=0]):32,1"
		oCalendar:SetProperty("DateHeaderField",1/*exHeaderDate*/," ( ( ( month(value) = month(date(``) ) and ( year(value) = year(date(``) ) ) ) ) ? `<b><fgcolor=0000FF>` : `` ) + `<c><%month%> <%year%>`")
		oCalendar:SetProperty("HTMLPicture","up","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJZJJEIJUPDaMZkUAQGAOP4DRShOgvHIGQA0U5CbKzOIZYRIICzCaUX4PS4hRgEGg/QaKJLhGSESIIZoMfAMMIkKQzJxDDBJaCMaoQSABVhAXgQRBLRFdNhIB4QY4PfyUJB7AYAFo+DIWOb7LDdiIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","down","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIEM5BJpBhSxR4LfhhAsRKZJIhBKg4J7tRjJBIAEAMAjzWIJba0E5rWQcWaBAoFR7oK4HewRZCMPiMUDLXRoS4PfjCQJrEhdaJ5ET4YIvTgOJ5kFSTKpkFaTKLEFqTGxyFgTIyuMgCeJaPwDSIKEhlCT5ZoWFT4iIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","left","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJUJJEIJUPDaMZkEANWACeJvMgBIwSGgXAaxGIQI6RMYAJBzFQQHYBeIzKQNYCpTIYAbwNQmMgAILNfAMEBKGYuAaIaxMGYDFD2ARVASRNBDNCeSAIDRCW7MAgDDDZDIAKbADgRVrfUCNiIAJJFJxEVxCMCCgI")
		oCalendar:SetProperty("HTMLPicture","right","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYc7YYBY5vVBkiJEJJEIJUHBPMbAARYUI0KKADJKEaDEpAVgAYjHYI8GSACgQb4AcRiGCPJgwNQIEzANIICaUUwpUDIBYjKIzBAsAZiWQ1QYABLZTKBAIATL2CUxXJdV8RABJIpOIiuIRgQUBA=")
		oCalendar:SetProperty("DateHeaderField",2/*exHeaderPrevMonth*/,"<c><img>up</img>")
		oCalendar:SetProperty("DateHeaderField",3/*exHeaderNextMonth*/,"<c><img>down</img>")
		oCalendar:SetProperty("DateHeaderField",4/*exHeaderPrevYear*/,"<c><img>left</img>")
		oCalendar:SetProperty("DateHeaderField",5/*exHeaderNextYear*/,"<c><img>right</img>")
		oAppearance := oCalendar:VisualAppearance()
			oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABFgDg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYIkWA5AiKEYoThCIxzTJ8aw3CKbYRAKCXfoUAJFP7Fc6ABJMBx3EyhZ89NDYEwTIKBahoehqIheEQyDSJNb2DCIahhMSEbKtCooDhGFpUWzLdxTJJVawHJoABjkS45PjEAJ+SBPUZVRRlFyfO7BKSjMKKXgkG4zABWVa1bC1FzxQ6mKykKQLQADDIDVZAeL3JTNCS5IyLLDtO77EqmZ5la7cUgRDj4AY7Ua+MzubBZaovOqDYzAey7TDWLRXFDNIzzTgQAyHHrETZHGqwJxMAEapYGqYpVi2HwzDuQ5oHKIQgggSSUGMOgdE4RhYDwJBVAwIQTH2UYhjQJBRAmZxuCEHZ3icJp5EgKxgAIVgCCQSQSEIBQkCAYhCAIJYKmKNIuFcTBIESPYEk6GBUm+" +;
		"BZOmOPgZgWYRTiYEwvEwaIEAAK4KnKOJrgmTpDjCbYJmKSI2CoOxihOLglCuAACioNg8COA4gmcOZOiidg+g+Dh4moOA8CMYokNmCoyiycQ8E8A4iE6D4OjOMgng8ZJjiITA8CSEouEcKwKkkLJyhQIoIkYU9LjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDyaICokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tEsHJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQg" +;
		"pDOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMAAAkoTADmMLpIjISp+HSS4PgyMAADBzAHDSIoPCOUpWjObIKE8NJOHKIwPEaTprBsHpdjWLB9AieQ+DQYwQAAMR1EOZxWi+bx7HcWQ8msfRYnnDZQACRwxgwc5rGaMZPE0ZxqjWNZtgyRwAAyTZEnuXJzEyAx2kQcxNkye5cEy3cYAcANrGAIH4OAhx3gNGGPAfgIR8jBA4McBMARVhnH4HQOYmxuCpF2MsecEQVBvGQCcIQug6itGQBoARAQ=")
		oCalendar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
131:
How can I arrange the month's header (left, right, next, prev month, picture, ebn)

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:Appearance := 0/*None2*/
		oCalendar:SetProperty("Background",8/*exDateHeader*/,oCalendar:BackColor())
		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:MaxMonthX := 2
		oCalendar:MaxMonthY := 2
		oCalendar:DrawGridLine := 0/*Solid*/
		oCalendar:WeekDays := "Su Mo Tu We Th Fr Sa"
		oCalendar:MarkToday := .T.
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellHeight := 32
		oCalendar:FixedCellWidth := 32
		oCalendar:DateHeaderFormat := "(" + CHR(34) + "" + CHR(34) + "[b=0],(" + CHR(34) + "" + CHR(34) + "[b=0]/24;2[b=0][bg=0x01000000]/" + CHR(34) + "" + CHR(34) + "[b=0]):24," + CHR(34) + "" + CHR(34) + "[b=0]):32,1,(" + CHR(34) + "" + CHR(34) + "[b=0],(" + CHR(34) + "" + CHR(34) + "[b=0]/24;3[b=0][bg=0x01000000]/" + CHR(34) + "" + CHR(34) + "[b=0]):24," + CHR(34) + "" + CHR(34) + "[b=0]):32"
		oCalendar:SetProperty("DateHeaderField",1/*exHeaderDate*/," ( ( ( month(value) = month(date(``) ) and ( year(value) = year(date(``) ) ) ) ) ? `<b><fgcolor=0000FF>` : `` ) + `<c><%month%> <%year%>`")
		oCalendar:SetProperty("HTMLPicture","up","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJZJJEIJUPDaMZkUAQGAOP4DRShOgvHIGQA0U5CbKzOIZYRIICzCaUX4PS4hRgEGg/QaKJLhGSESIIZoMfAMMIkKQzJxDDBJaCMaoQSABVhAXgQRBLRFdNhIB4QY4PfyUJB7AYAFo+DIWOb7LDdiIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","down","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIEM5BJpBhSxR4LfhhAsRKZJIhBKg4J7tRjJBIAEAMAjzWIJba0E5rWQcWaBAoFR7oK4HewRZCMPiMUDLXRoS4PfjCQJrEhdaJ5ET4YIvTgOJ5kFSTKpkFaTKLEFqTGxyFgTIyuMgCeJaPwDSIKEhlCT5ZoWFT4iIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","left","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJUJJEIJUPDaMZkEANWACeJvMgBIwSGgXAaxGIQI6RMYAJBzFQQHYBeIzKQNYCpTIYAbwNQmMgAILNfAMEBKGYuAaIaxMGYDFD2ARVASRNBDNCeSAIDRCW7MAgDDDZDIAKbADgRVrfUCNiIAJJFJxEVxCMCCgI")
		oCalendar:SetProperty("HTMLPicture","right","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYc7YYBY5vVBkiJEJJEIJUHBPMbAARYUI0KKADJKEaDEpAVgAYjHYI8GSACgQb4AcRiGCPJgwNQIEzANIICaUUwpUDIBYjKIzBAsAZiWQ1QYABLZTKBAIATL2CUxXJdV8RABJIpOIiuIRgQUBA=")
		oCalendar:SetProperty("DateHeaderField",2/*exHeaderPrevMonth*/,"<c><img>up</img>")
		oCalendar:SetProperty("DateHeaderField",3/*exHeaderNextMonth*/,"<c><img>down</img>")
		oCalendar:SetProperty("DateHeaderField",4/*exHeaderPrevYear*/,"<c><img>left</img>")
		oCalendar:SetProperty("DateHeaderField",5/*exHeaderNextYear*/,"<c><img>right</img>")
		oAppearance := oCalendar:VisualAppearance()
			oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABFgDg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYIkWA5AiKEYoThCIxzTJ8aw3CKbYRAKCXfoUAJFP7Fc6ABJMBx3EyhZ89NDYEwTIKBahoehqIheEQyDSJNb2DCIahhMSEbKtCooDhGFpUWzLdxTJJVawHJoABjkS45PjEAJ+SBPUZVRRlFyfO7BKSjMKKXgkG4zABWVa1bC1FzxQ6mKykKQLQADDIDVZAeL3JTNCS5IyLLDtO77EqmZ5la7cUgRDj4AY7Ua+MzubBZaovOqDYzAey7TDWLRXFDNIzzTgQAyHHrETZHGqwJxMAEapYGqYpVi2HwzDuQ5oHKIQgggSSUGMOgdE4RhYDwJBVAwIQTH2UYhjQJBRAmZxuCEHZ3icJp5EgKxgAIVgCCQSQSEIBQkCAYhCAIJYKmKNIuFcTBIESPYEk6GBUm+" +;
		"BZOmOPgZgWYRTiYEwvEwaIEAAK4KnKOJrgmTpDjCbYJmKSI2CoOxihOLglCuAACioNg8COA4gmcOZOiidg+g+Dh4moOA8CMYokNmCoyiycQ8E8A4iE6D4OjOMgng8ZJjiITA8CSEouEcKwKkkLJyhQIoIkYU9LjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDyaICokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tEsHJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQg" +;
		"pDOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMAAAkoTADmMLpIjISp+HSS4PgyMAADBzAHDSIoPCOUpWjObIKE8NJOHKIwPEaTprBsHpdjWLB9AieQ+DQYwQAAMR1EOZxWi+bx7HcWQ8msfRYnnDZQACRwxgwc5rGaMZPE0ZxqjWNZtgyRwAAyTZEnuXJzEyAx2kQcxNkye5cEy3cYAcANrGAIH4OAhx3gNGGPAfgIR8jBA4McBMARVhnH4HQOYmxuCpF2MsecEQVBvGQCcIQug6itGQBoARAQ=")
		oCalendar:EndUpdate()

	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 month's header (right, next, prev month, picture, ebn)

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:Appearance := 0/*None2*/
		oCalendar:SetProperty("Background",8/*exDateHeader*/,oCalendar:BackColor())
		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:MaxMonthX := 2
		oCalendar:MaxMonthY := 2
		oCalendar:DrawGridLine := 0/*Solid*/
		oCalendar:WeekDays := "Su Mo Tu We Th Fr Sa"
		oCalendar:MarkToday := .T.
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellHeight := 32
		oCalendar:FixedCellWidth := 32
		oCalendar:DateHeaderFormat := "1,(" + CHR(34) + "" + CHR(34) + "[b=0],(" + CHR(34) + "" + CHR(34) + "[b=0]/24;2[b=0][bg=0x01000000]/" + CHR(34) + "" + CHR(34) + "[b=0]):24," + CHR(34) + "" + CHR(34) + "[b=0]):32,(" + CHR(34) + "" + CHR(34) + "[b=0],(" + CHR(34) + "" + CHR(34) + "[b=0]/24;3[b=0][bg=0x01000000]/" + CHR(34) + "" + CHR(34) + "[b=0]):24," + CHR(34) + "" + CHR(34) + "[b=0]):32"
		oCalendar:SetProperty("DateHeaderField",1/*exHeaderDate*/," ( ( ( month(value) = month(date(``) ) and ( year(value) = year(date(``) ) ) ) ) ? `<b><fgcolor=0000FF>` : `` ) + `<c><%month%> <%year%>`")
		oCalendar:SetProperty("HTMLPicture","up","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJZJJEIJUPDaMZkUAQGAOP4DRShOgvHIGQA0U5CbKzOIZYRIICzCaUX4PS4hRgEGg/QaKJLhGSESIIZoMfAMMIkKQzJxDDBJaCMaoQSABVhAXgQRBLRFdNhIB4QY4PfyUJB7AYAFo+DIWOb7LDdiIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","down","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIEM5BJpBhSxR4LfhhAsRKZJIhBKg4J7tRjJBIAEAMAjzWIJba0E5rWQcWaBAoFR7oK4HewRZCMPiMUDLXRoS4PfjCQJrEhdaJ5ET4YIvTgOJ5kFSTKpkFaTKLEFqTGxyFgTIyuMgCeJaPwDSIKEhlCT5ZoWFT4iIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","left","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJUJJEIJUPDaMZkEANWACeJvMgBIwSGgXAaxGIQI6RMYAJBzFQQHYBeIzKQNYCpTIYAbwNQmMgAILNfAMEBKGYuAaIaxMGYDFD2ARVASRNBDNCeSAIDRCW7MAgDDDZDIAKbADgRVrfUCNiIAJJFJxEVxCMCCgI")
		oCalendar:SetProperty("HTMLPicture","right","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYc7YYBY5vVBkiJEJJEIJUHBPMbAARYUI0KKADJKEaDEpAVgAYjHYI8GSACgQb4AcRiGCPJgwNQIEzANIICaUUwpUDIBYjKIzBAsAZiWQ1QYABLZTKBAIATL2CUxXJdV8RABJIpOIiuIRgQUBA=")
		oCalendar:SetProperty("DateHeaderField",2/*exHeaderPrevMonth*/,"<c><img>up</img>")
		oCalendar:SetProperty("DateHeaderField",3/*exHeaderNextMonth*/,"<c><img>down</img>")
		oCalendar:SetProperty("DateHeaderField",4/*exHeaderPrevYear*/,"<c><img>left</img>")
		oCalendar:SetProperty("DateHeaderField",5/*exHeaderNextYear*/,"<c><img>right</img>")
		oAppearance := oCalendar:VisualAppearance()
			oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABFgDg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYIkWA5AiKEYoThCIxzTJ8aw3CKbYRAKCXfoUAJFP7Fc6ABJMBx3EyhZ89NDYEwTIKBahoehqIheEQyDSJNb2DCIahhMSEbKtCooDhGFpUWzLdxTJJVawHJoABjkS45PjEAJ+SBPUZVRRlFyfO7BKSjMKKXgkG4zABWVa1bC1FzxQ6mKykKQLQADDIDVZAeL3JTNCS5IyLLDtO77EqmZ5la7cUgRDj4AY7Ua+MzubBZaovOqDYzAey7TDWLRXFDNIzzTgQAyHHrETZHGqwJxMAEapYGqYpVi2HwzDuQ5oHKIQgggSSUGMOgdE4RhYDwJBVAwIQTH2UYhjQJBRAmZxuCEHZ3icJp5EgKxgAIVgCCQSQSEIBQkCAYhCAIJYKmKNIuFcTBIESPYEk6GBUm+" +;
		"BZOmOPgZgWYRTiYEwvEwaIEAAK4KnKOJrgmTpDjCbYJmKSI2CoOxihOLglCuAACioNg8COA4gmcOZOiidg+g+Dh4moOA8CMYokNmCoyiycQ8E8A4iE6D4OjOMgng8ZJjiITA8CSEouEcKwKkkLJyhQIoIkYU9LjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDyaICokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tEsHJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQg" +;
		"pDOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMAAAkoTADmMLpIjISp+HSS4PgyMAADBzAHDSIoPCOUpWjObIKE8NJOHKIwPEaTprBsHpdjWLB9AieQ+DQYwQAAMR1EOZxWi+bx7HcWQ8msfRYnnDZQACRwxgwc5rGaMZPE0ZxqjWNZtgyRwAAyTZEnuXJzEyAx2kQcxNkye5cEy3cYAcANrGAIH4OAhx3gNGGPAfgIR8jBA4McBMARVhnH4HQOYmxuCpF2MsecEQVBvGQCcIQug6itGQBoARAQ=")
		oCalendar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
129:
Can I specify a different foreground color for the current month

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:Appearance := 0/*None2*/
		oCalendar:SetProperty("Background",8/*exDateHeader*/,oCalendar:BackColor())
		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:MaxMonthX := 2
		oCalendar:MaxMonthY := 2
		oCalendar:DrawGridLine := 0/*Solid*/
		oCalendar:WeekDays := "Su Mo Tu We Th Fr Sa"
		oCalendar:MarkToday := .T.
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellHeight := 32
		oCalendar:FixedCellWidth := 32
		oCalendar:DateHeaderFormat := "1,2:32,3:32"
		oCalendar:SetProperty("DateHeaderField",1/*exHeaderDate*/," ( ( ( month(value) = month(date(``) ) and ( year(value) = year(date(``) ) ) ) ) ? `<b><fgcolor=0000FF>` : `` ) + `<c><%month%> <%year%>`")
		oCalendar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
128:
How do I change the +/- when using the custom format for month's header (with no background)

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:Appearance := 0/*None2*/
		oCalendar:SetProperty("Background",8/*exDateHeader*/,oCalendar:BackColor())
		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:MaxMonthX := 2
		oCalendar:MaxMonthY := 2
		oCalendar:DrawGridLine := 0/*Solid*/
		oCalendar:WeekDays := "Su Mo Tu We Th Fr Sa"
		oCalendar:MarkToday := .T.
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellHeight := 32
		oCalendar:FixedCellWidth := 32
		oCalendar:DateHeaderFormat := "1,2:32,3:32"
		oCalendar:SetProperty("HTMLPicture","up","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJZJJEIJUPDaMZkUAQGAOP4DRShOgvHIGQA0U5CbKzOIZYRIICzCaUX4PS4hRgEGg/QaKJLhGSESIIZoMfAMMIkKQzJxDDBJaCMaoQSABVhAXgQRBLRFdNhIB4QY4PfyUJB7AYAFo+DIWOb7LDdiIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","down","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIEM5BJpBhSxR4LfhhAsRKZJIhBKg4J7tRjJBIAEAMAjzWIJba0E5rWQcWaBAoFR7oK4HewRZCMPiMUDLXRoS4PfjCQJrEhdaJ5ET4YIvTgOJ5kFSTKpkFaTKLEFqTGxyFgTIyuMgCeJaPwDSIKEhlCT5ZoWFT4iIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("DateHeaderField",2/*exHeaderPrevMonth*/,"<c><img>up</img>")
		oCalendar:SetProperty("DateHeaderField",3/*exHeaderNextMonth*/,"<c><img>down</img>")
		oCalendar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
127:
How do I change the +/- when using the custom format for month's header (with background)

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:Appearance := 0/*None2*/
		oCalendar:SetProperty("Background",8/*exDateHeader*/,oCalendar:BackColor())
		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:MaxMonthX := 2
		oCalendar:MaxMonthY := 2
		oCalendar:DrawGridLine := 0/*Solid*/
		oCalendar:WeekDays := "Su Mo Tu We Th Fr Sa"
		oCalendar:MarkToday := .T.
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellHeight := 32
		oCalendar:FixedCellWidth := 32
		oCalendar:DateHeaderFormat := "1,(" + CHR(34) + "" + CHR(34) + "[b=0],(" + CHR(34) + "" + CHR(34) + "[b=0]/24;2[b=0][bg=RGB(196,196,196)]/" + CHR(34) + "" + CHR(34) + "[b=0]):24," + CHR(34) + "" + CHR(34) + "[b=0]):32,(" + CHR(34) + "" + CHR(34) + "[b=0],(" + CHR(34) + "" + CHR(34) + "[b=0]/24;3[b=0][bg=RGB(196,196,196)]/" + CHR(34) + "" + CHR(34) + "[b=0]):24," + CHR(34) + "" + CHR(34) + "[b=0]):32"
		oCalendar:SetProperty("HTMLPicture","up","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiJZJJEIJUPDaMZkUAQGAOP4DRShOgvHIGQA0U5CbKzOIZYRIICzCaUX4PS4hRgEGg/QaKJLhGSESIIZoMfAMMIkKQzJxDDBJaCMaoQSABVhAXgQRBLRFdNhIB4QY4PfyUJB7AYAFo+DIWOb7LDdiIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("HTMLPicture","down","gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIEM5BJpBhSxR4LfhhAsRKZJIhBKg4J7tRjJBIAEAMAjzWIJba0E5rWQcWaBAoFR7oK4HewRZCMPiMUDLXRoS4PfjCQJrEhdaJ5ET4YIvTgOJ5kFSTKpkFaTKLEFqTGxyFgTIyuMgCeJaPwDSIKEhlCT5ZoWFT4iIAJJFJxEVxCMCCgIA=")
		oCalendar:SetProperty("DateHeaderField",2/*exHeaderPrevMonth*/,"<c><img>up</img>")
		oCalendar:SetProperty("DateHeaderField",3/*exHeaderNextMonth*/,"<c><img>down</img>")
		oCalendar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
126:
How can I arrange the month's header (right, next, prev month)

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:Appearance := 0/*None2*/
		oCalendar:SetProperty("Background",8/*exDateHeader*/,oCalendar:BackColor())
		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:MaxMonthX := 2
		oCalendar:MaxMonthY := 2
		oCalendar:DrawGridLine := 0/*Solid*/
		oCalendar:WeekDays := "Su Mo Tu We Th Fr Sa"
		oCalendar:MarkToday := .T.
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellHeight := 32
		oCalendar:FixedCellWidth := 32
		oCalendar:DateHeaderFormat := "1,(" + CHR(34) + "" + CHR(34) + "[b=0],(" + CHR(34) + "" + CHR(34) + "[b=0]/24;2[b=0][bg=RGB(196,196,196)]/" + CHR(34) + "" + CHR(34) + "[b=0]):24," + CHR(34) + "" + CHR(34) + "[b=0]):32,(" + CHR(34) + "" + CHR(34) + "[b=0],(" + CHR(34) + "" + CHR(34) + "[b=0]/24;3[b=0][bg=RGB(196,196,196)]/" + CHR(34) + "" + CHR(34) + "[b=0]):24," + CHR(34) + "" + CHR(34) + "[b=0]):32"
		oCalendar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
125:
How do I display the week number according, so the January 1st is in the first week

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:FirstDay := 1/*Sunday*/
		oCalendar:DisplayWeekNumberAs := 1/*exSimpleWeekNumber*/
		oCalendar:ShowWeeks := .T.
		oCalendar:Date := "01/01/2016"
		oCalendar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
124:
How do I display the week number according to ISO8601 standard

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:DisplayWeekNumberAs := 0/*exISO8601WeekNumber*/
		oCalendar:ShowWeeks := .T.
		oCalendar:Date := "01/01/2016"
		oCalendar:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
123:
Just seen the BackgroundExt property. Not sure what I can do with that

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvent,oEvent1
	LOCAL oEvents

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:BeginUpdate()
		oCalendar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellWidth := 48
		oCalendar:FixedCellHeight := 48
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:MaxMonthX := 1
		oCalendar:MaxMonthY := 1
		oCalendar:Date := "02/01/2014"
		oCalendar:ShowNonMonthDays := .F.
		oCalendar:DrawGridLine := 2/*LargeDots*/
		oEvents := oCalendar:Events()
			oEvents:Add("02/03/2014"):BackgroundExt := "bottom[8,pattern=0x006,patterncolor=RGB(190,190,190),frame=RGB(0,0,0),framethick]"
			oEvents:Add("02/04/2014"):BackgroundExt := "bottom[100%,pattern=0x003,frame=RGB(0,0,0),framethick]"
			oEvents:Add("02/05/2014"):BackgroundExt := "top[8,pattern=0x006,patterncolor=RGB(190,190,190),frame=RGB(0,0,0),framethick]"
			oEvents:Add("02/10/2014"):BackgroundExt := "top[4](left[4],right[4],client),bottom[4](left[4],right[4],client),left[4],right[4],client(left[10%](top[90%,back=RGB(0,0,0)]),top[30%,back=RGB(254,217,102)],client[back=RGB(123,250,212)])"
			oEvents:Add("02/11/2014"):BackgroundExt := "left[33%,back=RGB(0,128,0)],left[33%,back=RGB(0,255,0)],client[back=RGB(255,128,128)]"
			oEvents:Add("02/12/2014"):BackgroundExt := "top[33%,back=RGB(0,128,0)],left[33%,back=RGB(0,255,0)],client[back=RGB(255,128,128)](top[50%,back=RGB(0,255,255)])"
			oEvents:Add("02/13/2014"):BackgroundExt := "bottom[12](left[75%,back=0x01000000]),none[(0,100%-22,100%,22),text=`<sha ;;0><font ;6>75%`,align=0x11]"
			oEvents:Add("02/14/2014"):BackgroundExt := "top[12](left[55%,back=0x01FEFEFE]),none[(0,0,100%,12),pattern=0x000,frame=RGB(0,255,0)],none[(0,0,100%,22),text=`<sha ;;0><font ;6>55%`,align=0x11]"
			oEvents:Add("02/17/2014"):BackgroundExt := "bottom[16,align=0x11,text=`<fgcolor 808080><font ;6>extra`]"
			oEvents:Add("02/18/2014"):BackgroundExt := "root[text=`<fgcolor 808080><font ;6>extra 2`,align=0x01](bottom[16,text=`<fgcolor 808080><font ;6>extra1`,align=0x21])"
			oEvent := oEvents:Add("02/19/2014")
				oEvent:BackgroundExt := "top[4](left[4],right[4],client),bottom[4](left[4],right[4],client),left[4],right[4],client[text=`<fgcolor 808080><font ;6><b>B`,align=0x22](client[text=`<fgcolor 808080><font ;6><b>A`,align=0x20](client[text=`<fgcolor 808080><font ;6><b>D`,align=0x00](client[text=`<fgcolor 808080><font ;6><b>C`,align=0x02](client))))"
				oEvent:Caption := "<sha ;;0><font ;12><fgcolor FF0000><b><%day%>"
			oEvents:Add("02/20/2014"):BackgroundExt := "root[text=`<fgcolor 808080><b>B`,align=0x22](client[text=`<fgcolor 808080><b>A`,align=0x20])"
			oEvent1 := oEvents:Add("02/21/2014")
				oEvent1:BackgroundExt := "root[align=0,wordwrap,text=`<font ;6>This is a long story to put on your date, to break the lines. `]"
				oEvent1:Caption := "<b><fgcolor FFFFFF><out 1;2><font ;18><%day%>"
		oCalendar:EndUpdate()

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

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:AlignmentDay := 1/*CenterAlignment*/
		oCalendar:FixedCellWidth := 36
		oCalendar:FixedCellHeight := 36
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:MaxMonthX := 1
		oCalendar:MaxMonthY := 1
		oCalendar:Date := "02/01/2014"
		oCalendar:ShowNonMonthDays := .F.
		oCalendar:Events():Add("02/03/2014"):BackgroundExt := "bottom[8,pattern=0x006,patterncolor=RGB(190,190,190),frame=RGB(0,0,0),framethick]"
		oCalendar:Events():Add("02/04/2014"):BackgroundExt := "bottom[100%,pattern=0x006,patterncolor=RGB(190,190,190),frame=RGB(0,0,0),framethick]"
		oCalendar:Events():Add("02/05/2014"):BackgroundExt := "top[8,pattern=0x006,patterncolor=RGB(190,190,190),frame=RGB(0,0,0),framethick]"
		oCalendar:DrawGridLine := 2/*LargeDots*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
121:
Can I use PNG picture files

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:SetProperty("HTMLPicture","pic1","c:\exontrol\images\card.png")
		oCalendar:AlignmentDay := 0/*LeftAlignment*/
		oCalendar:FixedCellWidth := 64
		oCalendar:FixedCellHeight := 48
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:MaxMonthX := 1
		oCalendar:MaxMonthY := 1
		oCalendar:Events():Add(oCalendar:Date()):Caption := "<sha><b><%day%></b></sha> <r><img>pic1</img>"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
120:
Is it possible to display a custom-size picture assigned to a date

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:SetProperty("HTMLPicture","pic1","c:\exontrol\images\zipdisk.gif")
		oCalendar:AlignmentDay := 0/*LeftAlignment*/
		oCalendar:FixedCellWidth := 64
		oCalendar:FixedCellHeight := 48
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:MaxMonthX := 1
		oCalendar:MaxMonthY := 1
		oCalendar:Events():Add(oCalendar:Date()):Caption := "<sha><b><%day%></b></sha> <r><img>pic1</img>"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
119:
How can I assign a caption and an icon to a date

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oCalendar:AlignmentDay := 0/*LeftAlignment*/
		oCalendar:FixedCellWidth := 48
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:MaxMonthX := 1
		oCalendar:MaxMonthY := 1
		oCalendar:Events():Add(oCalendar:Date()):Caption := "<sha><b><%day%></b></sha> <r><img>1</img><off -4><sha;;0><fgcolor FF0000><font ;6>ev</sha>"

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

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:AlignmentDay := 0/*LeftAlignment*/
		oCalendar:FixedCellWidth := 36
		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:MaxMonthX := 1
		oCalendar:MaxMonthY := 1
		oEvent := oCalendar:Events():Add(oCalendar:Date())
			oEvent:Caption := "<sha><b><%day%></b><r><off -4><sha;;0><fgcolor FF0000><font ;6>ev</sha></sha> 1"
			oEvent:Marker := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
117:
How do I align the day in the calendar control

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:AlignmentDay := 1/*CenterAlignment*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
116:
How do I specify a different foreground color for weekday headers (S M T W T F S)

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:SetProperty("Background",6/*exDaysHeader*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oCalendar:SetProperty("Background",28/*exDaysHeaderForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))

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

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:FirstDay := oCalendar:LocFirstDay()
		oCalendar:MonthNames := oCalendar:LocMonthNames()
		oCalendar:WeekDays := oCalendar:LocWeekDays()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
114:
How can I change the control's Visual appearance

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:VisualDesign := "gBFLBWIgBAEHhEJAEGg6EhCDC0HA0IdT/iyAjAAdcWf8YQAAAcKkEThQCCsiAMRhQBkMHhgABEIBsILBQHRCOp0OhvNwgGM+AUImMHmcHms3nM7ns/GUtmEIB0IIc2GQgFo0q1VrAygI"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
113:
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 oCalendar

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Picture := oCalendar:ExecuteTemplate("loadpicture(`c:\exontrol\images\card.png`)")
		oCalendar:PictureDisplay := 2/*UpperRight*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
112:
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 oCalendar

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Picture := oCalendar:ExecuteTemplate("loadpicture(`c:\exontrol\images\card.png`)")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
111:
Is it possible to specify the color or the visual appearance (EBN) for selected dates when the control has no focus

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oCalendar:SetProperty("Background",68/*exSelBackColorUnFocus*/,0x1000000)
		oCalendar:SetProperty("Background",69/*exSelForeColorUnFocus*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oCalendar:HideSelection := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
110:
Is it possible to specify the color for selected dates when the control loses the focus

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:SetProperty("Background",68/*exSelBackColorUnFocus*/,AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oCalendar:SetProperty("Background",69/*exSelForeColorUnFocus*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oCalendar:HideSelection := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
109:
Can I change the visual appearance for the tooltip, using your EBN files

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:ToolTipDelay := 1
		oCalendar:ToolTipWidth := 364
		oCalendar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oCalendar:SetProperty("Background",64/*exToolTipAppearance*/,0x1aa80f0)
		oCalendar:Events():Add(oCalendar:Date()):Comment := "This is a text that shows up when the cursor hovers the date"
		oCalendar:HideSelection := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
108:
Can I change the color of the control's border (EBN files)

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oCalendar:Appearance := 27966412/*0x1aabbc8+Etched*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
107:
Is it possible to change the color for days that are not in the month

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:ShowNonMonthDays := .T.
		oCalendar:SetProperty("NonMonthDaysColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
106:
How can I change the foreground color for non-working days

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:FirstDay := 2/*Monday*/
		oCalendar:SetProperty("NonworkingDaysForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
105:
How do I change the appearance for the months

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:SetProperty("Background",8/*exDateHeader*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,128 } )  , .F. ))
		oCalendar:SetProperty("Background",21/*exDateHeaderForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
104:
How can I show the more months with its full size
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:AutoSize := 1/*exFitClient*/
		oCalendar:MaxMonthX := 2
		oCalendar:MaxMonthY := 2

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
103:
How can I show the calendar with its full size
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:AutoSize := 1/*exFitClient*/
		oCalendar:MaxMonthX := 1
		oCalendar:MaxMonthY := 1

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
102:
How can I hide the separator above the Today button

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:SetProperty("Background",13/*exDateSeparatorBar*/,oCalendar:BackColor())

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
101:
How do I limit the dates being displayed or selected

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:MaxMonthX := 1
		oCalendar:MaxMonthY := 1
		oCalendar:ShowYearScroll := .F.
		oCalendar:MinDate := "01/01/2001"
		oCalendar:MaxDate := "01/31/2001"
		oCalendar:Date := "01/01/2001"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
100:
How can I remove an event
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:FixedCellWidth := 36
		oCalendar:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oCalendar:Events():Add(oCalendar:Date()):Image := 1
		oCalendar:Events():Remove(oCalendar:Date())

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
99:
How can I count the events
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oCalendar:Events():Add(oCalendar:Date()):Image := 1
		var_Count := oCalendar:Events:Count()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
98:
How can I clear all events
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oCalendar:Events():Add(oCalendar:Date()):Image := 1
		oCalendar:Events():Clear()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
97:
How can I save the events in the calendar
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
96:
How can I assign an icon to a date

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:FixedCellWidth := 36
		oCalendar:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oCalendar:Events():Add(oCalendar:Date()):Image := 1

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
95:
How can I enable or disable a date

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Events():Add(oCalendar:Date()):Disabled := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
94:
How can I mark or highlight a date

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Events():Add(oCalendar:Date()):Marker := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
93:
How can I assign a tooltip or a comment to a date

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oEvent := oCalendar:Events():Add(oCalendar:Date())
			oEvent:Comment := "This is a text that shows up when the cursor hovers the date"
			oEvent:CommentTitle := "T I T L E"
		oCalendar:HideSelection := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
92:
How can I assign any extra data to a date
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Events():Add(oCalendar:Date()):UserData := "your data"

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

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Events():Add(oCalendar:Date()):SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
90:
How can I change the foreground color for a date

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Events():Add(oCalendar:Date()):SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
89:
How can I draw a date as strikeout

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Events():Add(oCalendar:Date()):StrikeOut := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
88:
How can I underline a date

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Events():Add(oCalendar:Date()):Underline := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
87:
How can I make italic a date

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Events():Add(oCalendar:Date()):Italic := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
86:
How can I bold a date

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Events():Add(oCalendar:Date()):Bold := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
85:
How can I get the last visible date being displayed in the calendar
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:ShowNonMonthDays := .F.
		oCalendar:Events():Add(oCalendar:LastVisibleDate()):Comment := "This is the last visible date"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
84:
How can I get the first visible date being displayed in the calendar
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:ShowNonMonthDays := .F.
		oCalendar:Events():Add(oCalendar:FirstVisibleDate()):Comment := "This is the first visible date"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
83:
How can I hide the ticker that's shown for dates that have a tooltip or a comment
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:SetProperty("CommentBackColor",oCalendar:BackColor())
		oCalendar:Events():Add(oCalendar:Date()):Comment := "This is a text that shows up when the cursor hovers the date"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
82:
How can I change the visual aspect of the dates that have a comment or a tooltip assigned

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oCalendar:SetProperty("CommentBackColor",0x1000000)
		oCalendar:Events():Add(oCalendar:Date()):Comment := "This is a text that shows up when the cursor hovers the date"
		oCalendar:HideSelection := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
81:
How can I change the visual aspect of the dates that have a comment or a tooltip assigned
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oAppearance := oCalendar:VisualAppearance()
			oAppearance:Add(11,"c:\exontrol\images\normal.ebn")
			oAppearance:Add(1,"CP:11 4 2 -2 -2")
		oCalendar:SetProperty("CommentBackColor",0x1000000)
		oCalendar:Events():Add(oCalendar:Date()):Comment := "This is a text that shows up when the cursor hovers the date"
		oCalendar:HideSelection := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
80:
How can I change the color to highlight the dates that have a comment or a tooltip assigned

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:SetProperty("CommentBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oCalendar:Events():Add(oCalendar:Date()):Comment := "This is a text that shows up when the cursor hovers the date"
		oCalendar:HideSelection := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
79:
How can I hide the days that are shown in gray, and doesn' belong to the month

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:ShowNonMonthDays := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
78:
How can I change the color for non working days

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:NonworkingDays := 6
		oCalendar:NonworkingDaysPattern := 10/*exPatternCross*/
		oCalendar:SetProperty("NonworkingDaysColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
77:
How can I change the pattern or the style to draw the non working days

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:NonworkingDays := 6
		oCalendar:NonworkingDaysPattern := 10/*exPatternCross*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
76:
How can I show or hide the non working days
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:NonworkingDays := 0

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
75:
How can I specify the non working days
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:NonworkingDays := 6

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
74:
How do I get the height of the control to fit the MaxMonthY months in the client area
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
73:
How do I get the width of the control to fit the MaxMonthX months in the client area
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
72:
How can I specify the min and max years to scroll within
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:MinScrollYear := 2001
		oCalendar:MaxScrollYear := 2010

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
71:
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 oCalendar

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:ToolTipPopDelay := 10000
		oCalendar:Events():Add(oCalendar:Date()):Comment := "This is a text that shows up when the cursor hovers the date"
		oCalendar:HideSelection := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
70:
How can I save the selected dates
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
69:
How can I change the date that gets the focus
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Date := "01/01/2001"
		oCalendar:FocusDate := "01/02/2001"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
68:
How can I select a new date
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Date := "01/01/2001"
		oCalendar:Value := "01/02/2001"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
67:
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 oCalendar

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:ToolTipWidth := 328
		oCalendar:Events():Add(oCalendar:Date()):Comment := "This is a text that shows up when the cursor hovers the date"
		oCalendar:HideSelection := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
66:
How do I disable showing the tooltip for all control
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:ToolTipDelay := 0
		oCalendar:Events():Add(oCalendar:Date()):Comment := "This is a text that shows up when the cursor hovers the date"
		oCalendar:HideSelection := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
65:
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 oCalendar

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:ToolTipDelay := 1
		oCalendar:Events():Add(oCalendar:Date()):Comment := "This is a text that shows up when the cursor hovers the date"
		oCalendar:HideSelection := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
64:
How do I call your x-script language
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:ExecuteTemplate("BackColor = RGB(255,0,0)")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
63:
How do I call your x-script language
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Template := "BackColor = RGB(255,0,0)"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
62:
Can I change the font for the tooltip

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:ToolTipDelay := 1
		oStdFont := oCalendar:ToolTipFont()
			oStdFont:Name := "Tahoma"
			oStdFont:Size := 14
		oCalendar:ToolTipWidth := 364
		oCalendar:Events():Add(oCalendar:Date()):Comment := "This is a text that shows up when the cursor hovers the date"
		oCalendar:HideSelection := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
61:
How can I change the caption of the Today's button

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:TodayCaption := "Azi"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
60:
How do I get the date from the cursor
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
59:
How do I unselect a date

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:SingleSel := .F.
		oCalendar:Date := "01/01/2001"
		oCalendar:SelDate := "01/02/2001"
		oCalendar:SelDate := "01/03/2001"
		oCalendar:SelDate := "01/04/2001"
		oCalendar:UnSelDate("01/03/2001")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
58:
How do I get the list of selected dates
PROCEDURE OnSelectionChanged(oCalendar)
	DevOut( Transform(oCalendar:SelDate(),"") )
RETURN

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:SelectionChanged := {|| OnSelectionChanged(oCalendar)} /*Fired when the selection is changed.*/


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
57:
How do I select multiple dates

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:SingleSel := .F.
		oCalendar:Date := "01/01/2001"
		oCalendar:SelDate := "01/02/2001"
		oCalendar:SelDate := "01/03/2001"
		oCalendar:SelDate := "01/04/2001"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
56:
How do I get the selected date
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:SelDate := oCalendar:Date()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
55:
How can I build a date expression
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Date := oCalendar:DoDate(2001,1,1)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
54:
How can I select a new date

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Date := oCalendar:DoDate(2001,1,1)
		oCalendar:SelDate := oCalendar:DoDate(2001,1,2)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
53:
How can I select a new date
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Date := "01/01/2001"
		oCalendar:SelDate := "01/02/2001"

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Date := "01/01/2001"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
51:
How can I show or hide the buttons that in the header

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:ShowYearSelector := .F.
		oCalendar:ShowMonthSelector := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
50:
How can I show or hide the buttons that scrolls the years

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:ShowYearSelector := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
49:
How can I disable changing the month in the months selector

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:ShowMonthSelector := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
48:
How can I change the visual aspect of the selected date, using your EBN

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oCalendar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oCalendar:SetProperty("SelBackColor",0x1000000)
		oCalendar:SetProperty("SelForeColor",oCalendar:BackColor())

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
47:
How can I change the colors for selected dates

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:SetProperty("SelBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oCalendar:SetProperty("SelForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))

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

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:DrawBorderLine := 2/*LargeDots*/
		oCalendar:SetProperty("BorderLineColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
45:
How can I change the style of the line arround a month

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:DrawBorderLine := 2/*LargeDots*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
44:
How can I specify the number of months being displayed
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:ShowTodayButton := .F.
		oCalendar:ShowYearScroll := .F.
		oCalendar:MinMonthX := 2
		oCalendar:MaxMonthX := 2
		oCalendar:MinMonthY := 2
		oCalendar:MaxMonthY := 2

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
43:
How can I lock the control, so user can't select a new date
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Locked := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
42:
How do I change the first day of the week

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:FirstDay := 2/*Monday*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
41:
How do I change the name of the months

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:MonthNames := "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
40:
How do I change the name of the months

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:SetProperty("MonthName",1/*January*/,"Jan")
		oCalendar:SetProperty("MonthName",2/*February*/,"Feb")
		oCalendar:SetProperty("MonthName",3/*March*/,"Mar")
		oCalendar:SetProperty("MonthName",4/*April*/,"Apr")
		oCalendar:SetProperty("MonthName",5/*May*/,"May")
		oCalendar:SetProperty("MonthName",6/*June*/,"Jun")
		oCalendar:SetProperty("MonthName",7/*July*/,"Jul")
		oCalendar:SetProperty("MonthName",8/*August*/,"Aug")
		oCalendar:SetProperty("MonthName",9/*September*/,"Sep")
		oCalendar:SetProperty("MonthName",10/*October*/,"Oct")
		oCalendar:SetProperty("MonthName",11/*November*/,"Nov")
		oCalendar:SetProperty("MonthName",12/*December*/,"Dec")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
39:
How do I change the name for each week day

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:FixedCellWidth := 24
		oCalendar:FixedCellHeight := 16
		oCalendar:WeekDays := "Su Mo Tu We Th Fr Sa"
		oCalendar:SetProperty("HeaderForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oCalendar:SetProperty("HeaderBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
38:
How can I specify the width and height for dates being displayed in the calendar
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:FixedCellWidth := 22
		oCalendar:FixedCellHeight := 16

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
37:
How can I specify the width and height for dates being displayed in the calendar
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:AutoSize := 0/*exFixedSize*/
		oCalendar:FixedCellWidth := 32
		oCalendar:FixedCellHeight := 24

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
36:
How do I change the appearance for dates in the calendar

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:AppearanceDay := 1/*Day3D*/
		oCalendar:SetProperty("BackColor",0x8000000f)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
35:
How do I specify the color for the grid lines

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:DrawGridLine := 1/*SmallDots*/
		oCalendar:SetProperty("GridLineColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
34:
How do I draw the grid lines

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:DrawGridLine := 1/*SmallDots*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
33:
How do I change the foreground color for the week days and week numbers header

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:SetProperty("HeaderForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oCalendar:ShowWeeks := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
32:
How do I change the background color for the week days and week numbers header

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:SetProperty("HeaderBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oCalendar:ShowWeeks := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
31:
How can I show or hide the 'Today' button

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:ShowTodayButton := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
30:
How can I show or hide the scroll bar that changes the year

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:ShowYearScroll := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
29:
How can I show or hide the header that displays the months

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:ShowMonth := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
28:
How can I show or hide the header that displays the week days

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:ShowDays := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
27:
How do I show or hide the weeks

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:ShowWeeks := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
26:
How can I change the visual appearance of Today date in the calendar

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:MarkToday := .T.
		oCalendar:SetProperty("Background",14/*exMarkToday*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
25:
How do I mark the Today date

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:MarkToday := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
24:
How can I show the control's selection even if the control loses the focus

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:HideSelection := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
23:
How can I hide the control's selection when the control loses the focus

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:HideSelection := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
22:
How do I enable single selection
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:SingleSel := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
21:
How do I enable multiple selection

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:SingleSel := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
20:
How do I disable or enable the control
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Enabled := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
19:
Can I change the forecolor for the tooltip

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:ToolTipDelay := 1
		oCalendar:ToolTipWidth := 364
		oCalendar:SetProperty("Background",66/*exToolTipForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oCalendar:Events():Add(oCalendar:Date()):Comment := "This is a text that shows up when the cursor hovers the date"
		oCalendar:HideSelection := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
18:
Can I change the background color for the tooltip

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:ToolTipDelay := 1
		oCalendar:ToolTipWidth := 364
		oCalendar:SetProperty("Background",65/*exToolTipBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oCalendar:Events():Add(oCalendar:Date()):Comment := "This is a text that shows up when the cursor hovers the date"
		oCalendar:HideSelection := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
17:
Can I change the default border of the tooltip, using your EBN files

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:ToolTipDelay := 1
		oCalendar:ToolTipWidth := 364
		oCalendar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oCalendar:SetProperty("Background",64/*exToolTipAppearance*/,0x1000000)
		oCalendar:Events():Add(oCalendar:Date()):Comment := "This is a text that shows up when the cursor hovers the date"
		oCalendar:HideSelection := .T.

	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 of the selected month, in the months selector, using EBN files

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oCalendar:SetProperty("Background",15/*exMonthSelect*/,0x1000000)
		oCalendar:SetProperty("Background",16/*exMonthSelectForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))

	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 of Today date in the calendar, using EBN files

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:VisualAppearance():Add(1,"c:\exontrol\images\pushed.ebn")
		oCalendar:SetProperty("Background",14/*exMarkToday*/,0x1000000)
		oCalendar:SetProperty("Background",20/*exDropDownSelForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 1,0,0 } )  , .F. ))
		oCalendar:SetProperty("SelForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oCalendar:MarkToday := .T.

	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 separator between calendar and 'Today' button , using EBN files

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oCalendar:SetProperty("Background",13/*exDateSeparatorBar*/,0x1000000)

	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 scrolling bar for years, using EBN files

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oCalendar:VisualAppearance():Add(2,"c:\exontrol\images\pushed.ebn")
		oCalendar:SetProperty("Background",12/*exDateScrollRange*/,0x1000000)
		oCalendar:SetProperty("Background",11/*exDateScrollThumb*/,0x2000000)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
12:
How can I change the visual appearance of 'Today' button, using EBN files

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oCalendar:VisualAppearance():Add(2,"c:\exontrol\images\pushed.ebn")
		oCalendar:SetProperty("Background",9/*exDateTodayUp*/,0x1000000)
		oCalendar:SetProperty("Background",10/*exDateTodayDown*/,0x2000000)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
11:
How can I change the visual appearance of header , using EBN files

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oCalendar:SetProperty("Background",8/*exDateHeader*/,0x1000000)
		oCalendar:SetProperty("HeaderForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
10:
How can I change the visual appearance of header that week numbers, using EBN files

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oCalendar:SetProperty("Background",7/*exWeeksHeader*/,0x1000000)
		oCalendar:SetProperty("HeaderForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oCalendar:ShowWeeks := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
9:
How can I change the visual appearance of header that displays days, using EBN files

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oCalendar:SetProperty("Background",6/*exDaysHeader*/,0x1000000)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
8:
How can I change the visual appearance of the drop down button, using EBN files
#include "AppEvent.ch"
#include "ActiveX.ch"

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oCalendar:VisualAppearance():Add(2,"c:\exontrol\images\pushed.ebn")
		oCalendar:SetProperty("Background",4/*exDropDownButtonUp*/,0x1000000)
		oCalendar:SetProperty("Background",5/*exDropDownButtonDown*/,0x2000000)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
7:
How do I change the visual appearance of the left and right buttons in the calendar's header, using EBN files

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oCalendar:SetProperty("Background",2/*exScrollLeft*/,0x1000000)
		oCalendar:SetProperty("Background",3/*exScrollRight*/,0x1000000)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
6:
How do I change the visual appearance of the up and down buttons in the calendar's header, using EBN files

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oCalendar:SetProperty("Background",0/*exScrollUp*/,0x1000000)
		oCalendar:SetProperty("Background",1/*exScrollDown*/,0x1000000)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
5:
How do I change the control's foreground color

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
4:
How do I change the control's background color

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 200,200,200 } )  , .F. ))

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

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Font():Name := "Verdana"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
2:
How do I change the control's border, using your EBN files

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oCalendar:Appearance := 16777216/*0x1000000+*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
1:
How do I remove the control's border

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

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

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

	oCalendar := XbpActiveXControl():new( oForm:drawingArea )
	oCalendar:CLSID  := "Exontrol.Calendar.1" /*{D8F4D09C-3FD1-4479-ABA3-4F195C20050C}*/
	oCalendar:create(,, {10,60},{610,370} )

		oCalendar:Appearance := 0/*None2*/

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