property Item.Cursor as Variant
Specifies the shape of the cursor when mouse hovers the item.

TypeDescription
Variant A String expression that defines the cursor to be shown when the cursor hovers the item. The Valid values are listed bellow. Also the Cursor property could point to a cursor file to be loaded and shown while the cursor hovers the item.
By default, the Cursor property is "exDefault". Use the Cursor property of the Item object to specify a different cursor when it hovers the item only. Use the Cursor property to specify a different cursor when it hovers the ribbon control.

The supported values are:

Any other value indicates the path to a cursor file to be displayed when the pointer hovers the ribbon control/item.

Can I change the cursor where it hovers the item?

VBA (MS Access, Excell...)

With Ribbon1
	.Cursor = "exCross"
	With .Items
		.Add "Item 1"
		.Add("Item 2").Cursor = "exNoDrop"
	End With
	.Refresh 
End With

VB6

With Ribbon1
	.Cursor = "exCross"
	With .Items
		.Add "Item 1"
		.Add("Item 2").Cursor = "exNoDrop"
	End With
	.Refresh 
End With

VB.NET

With Exribbon1
	.Cursor = "exCross"
	With .Items
		.Add("Item 1")
		.Add("Item 2").Cursor = "exNoDrop"
	End With
	.Refresh()
End With

VB.NET for /COM

With AxRibbon1
	.Cursor = "exCross"
	With .Items
		.Add("Item 1")
		.Add("Item 2").Cursor = "exNoDrop"
	End With
	.Refresh()
End With

C++

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXRIBBONLib' for the library: 'ExRibbon 1.0 Control Library'

	#import <ExRibbon.dll>
	using namespace EXRIBBONLib;
*/
EXRIBBONLib::IRibbonPtr spRibbon1 = GetDlgItem(IDC_RIBBON1)->GetControlUnknown();
spRibbon1->PutCursor("exCross");
EXRIBBONLib::IItemsPtr var_Items = spRibbon1->GetItems();
	var_Items->Add(L"Item 1",vtMissing,vtMissing);
	var_Items->Add(L"Item 2",vtMissing,vtMissing)->PutCursor("exNoDrop");
spRibbon1->Refresh();

C++ Builder

Ribbon1->set_Cursor(TVariant("exCross"));
Exribbonlib_tlb::IItemsPtr var_Items = Ribbon1->Items;
	var_Items->Add(L"Item 1",TNoParam(),TNoParam());
	var_Items->Add(L"Item 2",TNoParam(),TNoParam())->set_Cursor(TVariant("exNoDrop"));
Ribbon1->Refresh();

C#

exribbon1.Cursor = "exCross";
exontrol.EXRIBBONLib.Items var_Items = exribbon1.Items;
	var_Items.Add("Item 1",null,null);
	var_Items.Add("Item 2",null,null).Cursor = "exNoDrop";
exribbon1.Refresh();

JScript/JavaScript

<BODY onload='Init()'>
<OBJECT CLASSID="clsid:DDF58CFA-750F-45E0-8A00-CFBE431702E2" id="Ribbon1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	Ribbon1.Cursor = "exCross";
	var var_Items = Ribbon1.Items;
		var_Items.Add("Item 1",null,null);
		var_Items.Add("Item 2",null,null).Cursor = "exNoDrop";
	Ribbon1.Refresh();
}
</SCRIPT>
</BODY>

VBScript

<BODY onload='Init()'>
<OBJECT CLASSID="clsid:DDF58CFA-750F-45E0-8A00-CFBE431702E2" id="Ribbon1"></OBJECT>

<SCRIPT LANGUAGE="VBScript">
Function Init()
	With Ribbon1
		.Cursor = "exCross"
		With .Items
			.Add "Item 1"
			.Add("Item 2").Cursor = "exNoDrop"
		End With
		.Refresh 
	End With
End Function
</SCRIPT>
</BODY>

C# for /COM

axRibbon1.Cursor = "exCross";
EXRIBBONLib.Items var_Items = axRibbon1.Items;
	var_Items.Add("Item 1",null,null);
	var_Items.Add("Item 2",null,null).Cursor = "exNoDrop";
axRibbon1.Refresh();

X++ (Dynamics Ax 2009)

public void init()
{
	COM com_Item,com_Items;
	anytype var_Item,var_Items;
	;

	super();

	exribbon1.Cursor("exCross");
	var_Items = exribbon1.Items(); com_Items = var_Items;
		com_Items.Add("Item 1");
		var_Item = COM::createFromObject(com_Items.Add("Item 2")); com_Item = var_Item;
		com_Item.Cursor("exNoDrop");
	exribbon1.Refresh();
}

Delphi 8 (.NET only)

with AxRibbon1 do
begin
	Cursor := 'exCross';
	with Items do
	begin
		Add('Item 1',Nil,Nil);
		Add('Item 2',Nil,Nil).Cursor := 'exNoDrop';
	end;
	Refresh();
end

Delphi (standard)

with Ribbon1 do
begin
	Cursor := 'exCross';
	with Items do
	begin
		Add('Item 1',Null,Null);
		Add('Item 2',Null,Null).Cursor := 'exNoDrop';
	end;
	Refresh();
end

VFP

with thisform.Ribbon1
	.Cursor = "exCross"
	with .Items
		.Add("Item 1")
		.Add("Item 2").Cursor = "exNoDrop"
	endwith
	.Refresh
endwith

dBASE Plus

local oRibbon,var_Item,var_Items

oRibbon = form.Activex1.nativeObject
oRibbon.Cursor = "exCross"
var_Items = oRibbon.Items
	var_Items.Add("Item 1")
	// var_Items.Add("Item 2").Cursor = "exNoDrop"
	var_Item = var_Items.Add("Item 2")
	with (oRibbon)
		TemplateDef = [Dim var_Item]
		TemplateDef = var_Item
		Template = [var_Item.Cursor = "exNoDrop"]
	endwith
oRibbon.Refresh()

XBasic (Alpha Five)

Dim oRibbon as P
Dim var_Item as P
Dim var_Items as P

oRibbon = topparent:CONTROL_ACTIVEX1.activex
oRibbon.Cursor = "exCross"
var_Items = oRibbon.Items
	var_Items.Add("Item 1")
	' var_Items.Add("Item 2").Cursor = "exNoDrop"
	var_Item = var_Items.Add("Item 2")
	oRibbon.TemplateDef = "Dim var_Item"
	oRibbon.TemplateDef = var_Item
	oRibbon.Template = "var_Item.Cursor = \"exNoDrop\""

oRibbon.Refresh()

Visual Objects

local var_Items as IItems

oDCOCX_Exontrol1:Cursor := "exCross"
var_Items := oDCOCX_Exontrol1:Items
	var_Items:Add("Item 1",nil,nil)
	var_Items:Add("Item 2",nil,nil):Cursor := "exNoDrop"
oDCOCX_Exontrol1:Refresh()

PowerBuilder

OleObject oRibbon,var_Items

oRibbon = ole_1.Object
oRibbon.Cursor = "exCross"
var_Items = oRibbon.Items
	var_Items.Add("Item 1")
	var_Items.Add("Item 2").Cursor = "exNoDrop"
oRibbon.Refresh()

Visual DataFlex

Procedure OnCreate
	Forward Send OnCreate
	Set ComCursor to "exCross"
	Variant voItems
	Get ComItems to voItems
	Handle hoItems
	Get Create (RefClass(cComItems)) to hoItems
	Set pvComObject of hoItems to voItems
		Get ComAdd of hoItems "Item 1" Nothing Nothing to Nothing
		Variant voItem
		Get ComAdd of hoItems "Item 2" Nothing Nothing to voItem
		Handle hoItem
		Get Create (RefClass(cComItem)) to hoItem
		Set pvComObject of hoItem to voItem
			Set ComCursor of hoItem to "exNoDrop"
		Send Destroy to hoItem
	Send Destroy to hoItems
	Send ComRefresh
End_Procedure

XBase++

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

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

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

	oRibbon := XbpActiveXControl():new( oForm:drawingArea )
	oRibbon:CLSID  := "Exontrol.Ribbon.1" /*{DDF58CFA-750F-45E0-8A00-CFBE431702E2}*/
	oRibbon:create(,, {10,60},{610,370} )

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

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