64
ImageSize property on 32 (specifies the size of the control' icons)

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutImageSize(32);
spGauge1->GetFont()->PutSize(_variant_t(long(16)));
spGauge1->Images(_bstr_t("gBJJgBAIDAAEg4AEEKAD/hz/EMNh8TIRNGwAjEZAEXjAojKAjMLjABhkaABAk0plUrlktl0vmExmUzmk1m03nE5nU7nk9miAoE+oVDolFo1HpFJpU5h8Sf9OqFNqUOq") +
"NUqdPq9VrFWrlbr1QpdhAFAkFis1ntFptVrtkrpszrNvmVxqk3uVtm1kmF3sdBvF/wGBmV+j9BYGHwWJulfxdax2NyFdx2JlV6l9Nw7AAGZymdz2Cy2GxErvWcz9ivlw" +
"yV21cuxugwktzGIzmvwtl0+53U5y0a0Wazmmyu/3dCyOMyXHx/J5nIr9q3uyqnBxFN3G46ma4vb7mD2Ng4nZze00fDkHC7t7us2rOX5tguetpHRlmz4HVqnXk1PjHO+C" +
"MPo9MBMC+j2vC8j7wS8cFNI4kBo05UIvfCT/NsnsApU+0Fqg/T+oy/kPxC0sEQfErKQK96+w28UWRI8UGvO8sTLS9r2PWmsMJTDTask3CsIbIEQRA3shOXEEAO/GclJ9" +
"FEKrrA8FRbKMXRIlb0JxCkjS1LMswhCcvuel0cv26cSMa8Ufx+2sQwhEUoSXOCjSbLcnxjKc7sdKUVyq28NtVI71P9P7JxtQEapjQ6fzfM8zPfNE2PhIsLL63E40slk5" +
"y7N89LcyU9SvMb3SdUc6VJLj5VLVLfO/PS9KzNFHUa/0XyBD0dxlS9cxhMlTRSoNXypPErWDPyfNS+MwprRNO0FD8wVVZ1AI08URwVRjtJ1WCn21QkkUrXVLVPQS/XIk" +
"FgTxT9iONZ9xVTdq+L1eKg3kkF6Upe68XtfV51/MtrVjBlwYFL1ev8y1/P6/lyzzYl02wntj0RVFmS1Qa+M5as93QxEUW9e993rfmQ2+vy65M/mL1lhl/2bj2ByVduMt" +
"NhCJT9hdz41nN14Ld12Z9UjfI/oUAaGseiw6+uFLLhcVabJOS5RqOE0BHlZ5VnEr5fOMs3st+aa/bbRzrJGV51Y0b0DbqaWXZD90hIsPbjWu52+6Wyadpe66hhO+P/Xi" +
"oW5rD8ZbrUZuVg6n1dsE/cXmewu1m9PVwnd35/nueXho/NaJzmjc61W76esuT77eG8pTquy9TwWH8LEzG8RDfFalx3Gcfvna9rvG/cptGLd9tuI6TZOP5Fiqi99vea+X" +
"4VRcBq/JZZtVQ9cwSs5lsXE372+a9z7PbfB3VVqHyvMctLto8uob6eV0m/cD6MN2v+T33t6sBut42vdv2bJ8a997x2maFJfK+qArbGJPEKE+1qTflMsIdW/GCJX17KcT" +
"6/czr/X+u1g29B7j/4BQfWkkx4zIHisjhPCmE0K4SwtXM+d4BvHRwNZOoBph9IJvPek9d40FoMJxf691jj2ywQQcHEWET4XJwkTszlVqm2GokewxtBT1DpQjRxDN0rUV" +
"DNKdC3lb6tzNOwh6upMSSYfv4YBCl/bsn9PxiFCEo7SI6Obc9HeOrnY8x4jtHtdpN4GRbaorhsbu18Pph5CiHymI0RpSXGJ/z2oUOxYxG858AyiI+bfJtuTcG5yelBJy" +
"T8okhqFd4a5yxL0rvulYtKCsZiWxWkc1s1cRoxxwhA31DLE0mR9l9HqX8fJgTDmFMVH0MIsRzVYnwnMi1dyzmhLt2kS2pxIiU62Wj5ptQGlSYFakLonTUJNLKaM5Wzlf" +
"fEkuFkk5wTrhVO2eE7G6lJhxFFYUZ55zmn0WuBCD4pzhirFCKkbomsOoIYmZx5p90LoYWGPdD5g0QmJRKYxbZ6zYoVQ2jVGylSak7KSkFH6RSjpHKFuU+YMyNo5SulkC" +
"6I0vonTCitMXPoEpVS2H5FQfEqp2R1opIgAEkJISYARTCukOhmPNI5Ex/wzGHUsicMwA1LHgQ90Y/KpoQHAD+pB/R4NzIaMAB9Xaw1gqaAOsh/A/ptIkWUfhGK1kZH8R" +
"gH5GqvgArqRmt4AAPrTroRofBGADkqr6Rmu4D7CEaHARiwpJrEEZsXXwlVjyMWRsaRqwdkLGNBABZmytmyMnaINZqyVpLR2ftKAAAdd6h2osbaskdiq4EZtgSmyNcbVW" +
"RJNXe3AA7REar3b0stlAAXBtoRmvJGLjEYAHUWsFcwCD/rnaop9aEICMAPdK5hT6xpeuzdOtAgKuJeGfdq6ggEbkTvAP+p9UCHXrvKkcgIA==");
spGauge1->PutCaption(EXGAUGELib::exLayerCaption,"<img>1</img>Caption");
spGauge1->EndUpdate();

63
ImageSize property on 16 (default) (specifies the size of the control' icons)

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutImageSize(16);
spGauge1->Images(_bstr_t("gBJJgBAIDAAEg4ACEKAD/hz/EMNh8TIRNGwAjEZAEXjAojJAjMLjABAAgjUYkUnlUrlktl0vmExmUzmk1m03nE5nU7nkrQCAntBoVDolFo1HoM/ADAplLptImdMYFOq") +
"dSqlXq1QrVbrlGpVWsFNrNdnNjsk7pQAtNroFnt0sh8Yr9iulTuNxs1Eu8OiT/vsnsNVutXlk/oGGtVKxGLxWNtsZtN8iUYuNvy0Zvd+xNYwdwvl4p870GCqc8vOeuVt" +
"tmp1knyOayWVy+WzN/ze1wOElenm+12WUz/Bv2/3UyyWrzeutux2GSyGP2dQ33C1ur3GD3M4zUNzHdlWjq/E3nGzVpjWv4HA7fRy/Tv2IrN8rPW6nZ3ve7mUlfu20Z8a" +
"cvQyb+vY9jasYoDwMm+LytVBDqKG3z8O3Cb8P+mkAuY9cCQ2uL4KaxDKvkp8RNLEjqugnrwQo/UWPzFyeQw5sNLZFENrI4kOqU66pw8uzmOKvTqNqjULJvGL1JO48GtT" +
"GsbLdEL3scxLlyiw8dQeoUVxdLTtyKmUjwGlslRPJsnK1HbAKbKCrsQo8uQk/CeP44iaR/ATnTNPLvyxPU+z9P9AUDQVBowiofJXQ6Oo+kKMpIkjztE4TKn4P6JowfgP" +
"nwD5/nAjB8AOeAPo0eAA1IAFH07UhAIMpYAVIYFHqBUhwVjV1S1EtQAHxW65V0AZwAeuQAnwB5gAPYViEDVhwAHTQBkCjB4gOhwDmCyhH0sACAg==");
spGauge1->PutCaption(EXGAUGELib::exLayerCaption,"<img>1</img>Caption");
spGauge1->EndUpdate();

62
I found that the control's needle/knob is too small to touch, is it possible somehow to make it working
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob");
spGauge1->PutPicturesName(L"`Layer` + str(value + 1) + `.png`");
spGauge1->PutLayerAutoSize(-1);
spGauge1->GetLayers()->PutCount(10);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(9));
	var_Layer->PutOnDrag(EXGAUGELib::exDoRotamove);
	var_Layer->PutIdem("0,7");
spGauge1->PutLayerDragAny(9);
spGauge1->EndUpdate();

61
How can I rotate/move multiple layers once the user drags the layer

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob");
spGauge1->PutPicturesName(L"`Layer` + str(value + 1) + `.png`");
spGauge1->PutLayerAutoSize(-1);
spGauge1->GetLayers()->PutCount(10);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(9));
	var_Layer->PutOnDrag(EXGAUGELib::exDoRotamove);
	var_Layer->PutIdem("0,7");
spGauge1->EndUpdate();

60
How can I show a layer as disabled

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob 1");
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->Add("original");
	var_Layer->PutOnDrag(EXGAUGELib::exDoMove);
	var_Layer->GetBackground()->GetPicture()->PutName("Layer2.png");
	var_Layer->PutDefaultOffsetY(-164);
	var_Layer->PutGrayscale(0);
EXGAUGELib::ILayerPtr var_Layer1 = spGauge1->GetLayers()->Add("grayscale 50%");
	var_Layer1->GetBackground()->GetPicture()->PutName("Layer2.png");
	var_Layer1->PutGrayscale(50);
	var_Layer1->PutDefaultOffsetY(-82);
EXGAUGELib::ILayerPtr var_Layer2 = spGauge1->GetLayers()->Add("grayscale 100%");
	var_Layer2->GetBackground()->GetPicture()->PutName("Layer2.png");
	var_Layer2->PutGrayscale(100);
spGauge1->EndUpdate();

59
Is it possible to stretch all layers

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob 2");
spGauge1->PutPicturesName(L"`Layer` + int(value  + 1) + `.png`");
spGauge1->GetLayers()->PutCount(5);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->Add("empty");
	var_Layer->GetBackground()->GetColor()->PutValue(RGB(240,240,240));
	var_Layer->PutPosition(0);
spGauge1->PutLayerAutoSize(-1);
spGauge1->EndUpdate();

58
Tic Tac Toe Game

// MouseDown event - Occurs when the user presses a mouse button.
void OnMouseDownGauge1(short   Button,short   Shift,long   X,long   Y)
{
	// Left = Me.Layers(l).Left
	// Top = Me.Layers(l).Top
	// Width = Me.Layers(l).Width
	// Height = Me.Layers(l).Height
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	long l = spGauge1->GetLayerFromPoint(-1,-1);
	EXGAUGELib::ILayersPtr var_Layers = spGauge1->GetLayers();
		EXGAUGELib::ILayerPtr var_Layer = var_Layers->Add(spGauge1->GetLayers()->GetCount());
			EXGAUGELib::ILPicturePtr var_Picture = var_Layer->GetBackground()->GetPicture();
				var_Picture->PutLeft(L"8");
				var_Picture->PutWidth(L"width - 2 * 8");
				var_Picture->PutTop(L"8");
				var_Picture->PutHeight(L"height - 2 * 8");
				var_Picture->PutName(spGauge1->FormatABC(L"A mod 2 = 0 ? `x` : `o`",spGauge1->GetLayers()->GetCount(),vtMissing,vtMissing));
			var_Layer->PutTransparency(0);
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->GetVisualAppearance()->Add(1,_bstr_t("gBFLBCJwBAEHhEJAAEhABS0IQAAYAQGKIYBkAKBQAGaAoDDcMQ5QwAAyDGKEEwsACEIrjKCRShyCYZRhGcTALD8EhhECTZKkAZAEiWIovRbHMBzFIMYRFFCcIRGSaYD") +
"iCNovTRNE7TfBMIhkGoSaKpCIRVDCSYJUzTc6wS79KgAASiJjjao6ZhaSpSABRYiyXRlHSxLiuYyoGTrJACEQxDhEEIjGLAazLMadJItCzabqGbJ8Ro6cQwTAIgI=");
spGauge1->PutDefaultLayer(EXGAUGELib::exDefLayerWidth,"width/3");
spGauge1->PutDefaultLayer(EXGAUGELib::exDefLayerHeight,"height/3");
spGauge1->PutHTMLPicture(L"x","C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Pictures\\x.png");
spGauge1->PutHTMLPicture(L"o","C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Pictures\\o.png");
spGauge1->PutLayerAutoSize(-1);
spGauge1->GetLayers()->PutCount(9);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
	var_Layer->GetBackground()->GetColor()->PutValue(0x1000000);
EXGAUGELib::ILayerPtr var_Layer1 = spGauge1->GetLayers()->GetItem(long(1));
	var_Layer1->PutLeft(L" width/3 - 4");
	var_Layer1->GetBackground()->GetColor()->PutValue(0x1000000);
EXGAUGELib::ILayerPtr var_Layer2 = spGauge1->GetLayers()->GetItem(long(2));
	var_Layer2->PutLeft(L"2 * (width/3 - 4) - 4");
	var_Layer2->GetBackground()->GetColor()->PutValue(0x1000000);
EXGAUGELib::ILayerPtr var_Layer3 = spGauge1->GetLayers()->GetItem(long(3));
	var_Layer3->PutTop(L"height/3 - 4");
	var_Layer3->GetBackground()->GetColor()->PutValue(0x1000000);
EXGAUGELib::ILayerPtr var_Layer4 = spGauge1->GetLayers()->GetItem(long(4));
	var_Layer4->PutTop(L"height/3 - 4");
	var_Layer4->PutLeft(L" width/3 - 4");
	var_Layer4->GetBackground()->GetColor()->PutValue(0x1000000);
EXGAUGELib::ILayerPtr var_Layer5 = spGauge1->GetLayers()->GetItem(long(5));
	var_Layer5->PutTop(L"height/3 - 4");
	var_Layer5->PutLeft(L"2 * (width/3 - 4) - 4");
	var_Layer5->GetBackground()->GetColor()->PutValue(0x1000000);
EXGAUGELib::ILayerPtr var_Layer6 = spGauge1->GetLayers()->GetItem(long(6));
	var_Layer6->PutTop(L"2 * (height/3 - 4) ");
	var_Layer6->GetBackground()->GetColor()->PutValue(0x1000000);
EXGAUGELib::ILayerPtr var_Layer7 = spGauge1->GetLayers()->GetItem(long(7));
	var_Layer7->PutTop(L"2 * (height/3 - 4) ");
	var_Layer7->PutLeft(L" width/3 - 4");
	var_Layer7->GetBackground()->GetColor()->PutValue(0x1000000);
EXGAUGELib::ILayerPtr var_Layer8 = spGauge1->GetLayers()->GetItem(long(8));
	var_Layer8->PutTop(L"2 * (height/3 - 4) ");
	var_Layer8->PutLeft(L"2 * (width/3 - 4) - 4");
	var_Layer8->GetBackground()->GetColor()->PutValue(0x1000000);
spGauge1->PutDefaultLayer(EXGAUGELib::exDefLayerTransparency,long(99));
spGauge1->EndUpdate();

57
What's the difference Rotate vs Rotamove

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.Debug = 227
}

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->PutAllowSmoothChange(EXGAUGELib::exSmoothChangeless);
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Linear\\Button with LEDs");
EXGAUGELib::ILayersPtr var_Layers = spGauge1->GetLayers();
	EXGAUGELib::ILayerPtr var_Layer = var_Layers->Add("base");
	EXGAUGELib::ILayerPtr var_Layer1 = var_Layers->Add("rotate");
		var_Layer1->PutToolTip(_bstr_t(var_Layer1->GetKey()));
		EXGAUGELib::ILPicturePtr var_Picture = var_Layer1->GetBackground()->GetPicture();
			var_Picture->PutName("Example Button Up.png");
			var_Picture->PutLeft(L"width/2");
			var_Picture->PutTop(L"height/2");
			var_Picture->PutWidth(L"128");
			var_Picture->PutHeight(L"64");
		EXGAUGELib::IForegroundPtr var_Foreground = var_Layer1->GetForeground();
			var_Foreground->PutCaption(EXGAUGELib::exLayerCaption,"<font ;14><sha ;;0>Rotate");
			var_Foreground->PutCaption(EXGAUGELib::exLayerCaptionLeft,"width/2 + 32");
			var_Foreground->PutCaption(EXGAUGELib::exLayerCaptionTop,"height/2 + 16");
		var_Layer1->PutBrightness(EXGAUGELib::exRedChannel,100);
		var_Layer1->PutOnDrag(EXGAUGELib::exDoRotate);
		var_Layer1->PutRotateAngle(45);
	EXGAUGELib::ILayerPtr var_Layer2 = var_Layers->Add("rotamove");
		var_Layer2->PutToolTip(_bstr_t(var_Layer2->GetKey()));
		EXGAUGELib::ILPicturePtr var_Picture1 = var_Layer2->GetBackground()->GetPicture();
			var_Picture1->PutName("Example Button Up.png");
			var_Picture1->PutLeft(L"width/2");
			var_Picture1->PutTop(L"height/2");
			var_Picture1->PutWidth(L"128");
			var_Picture1->PutHeight(L"64");
		EXGAUGELib::IForegroundPtr var_Foreground1 = var_Layer2->GetForeground();
			var_Foreground1->PutCaption(EXGAUGELib::exLayerCaption,"<font ;14><sha ;;0>Rotamove");
			var_Foreground1->PutCaption(EXGAUGELib::exLayerCaptionLeft,"width/2 + 24");
			var_Foreground1->PutCaption(EXGAUGELib::exLayerCaptionTop,"height/2 + 16");
		var_Layer2->PutBrightness(EXGAUGELib::exGreenChannel,100);
		var_Layer2->PutRotateAngle(45);
		var_Layer2->PutTransparency(25);
		var_Layer2->PutOnDrag(EXGAUGELib::exDoRotamove);

56
How do I display a tooltip, when cursor hovers the layer

// MouseIn event - Notifies that the cursor enters the layer.
void OnMouseInGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem(long(9))->PutToolTip(_bstr_t(spGauge1->FormatABC(L"`The current value is: <br><c><b>` + ((100 - A) format ``)",spGauge1->GetValue(),vtMissing,vtMissing)));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob");
spGauge1->PutPicturesName(L"`Layer` + str(value + 1) + `.png`");
spGauge1->GetLayers()->PutCount(10);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(9));
	var_Layer->PutDefaultRotateAngle(-126);
	var_Layer->PutOnDrag(EXGAUGELib::exDoRotamove);
	var_Layer->PutRotateAngleToValue(L"100 - value / 360 * 100");
	var_Layer->PutValueToRotateAngle(L"(value)/100 * 360");
spGauge1->GetLayers()->GetItem(long(3))->PutVisible(VARIANT_FALSE);
spGauge1->GetLayers()->GetItem(long(4))->PutVisible(VARIANT_FALSE);
spGauge1->GetLayers()->GetItem(long(9))->PutValue(long(25));
spGauge1->EndUpdate();

55
I've noticed that the OnDrag can move the layer itself, but how about moving the clipping region

// Drag event - Notifies that the user drags the layer.
void OnDragGauge1(LPDISPATCH   DragInfo)
{
	// Layers(DragInfo.Layer).Clip.Ellipse
}

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutBackColor(RGB(217,217,217));
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Guage");
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->Add("background");
	var_Layer->GetBackground()->GetPicture()->PutName("Guage_Background.png");
	EXGAUGELib::IClipEllipsePtr var_ClipEllipse = var_Layer->GetClip()->GetEllipse();
		var_ClipEllipse->PutRadiusX(L"width/3");
		var_ClipEllipse->PutRadiusY(L"height/3");
spGauge1->GetLayers()->Add("needle")->GetBackground()->GetPicture()->PutName("Guage_Needle.png");
spGauge1->EndUpdate();

54
How do I show a portion of layer with a different color (sample 2)

// Change event - Occurs when the layer's value is changed.
void OnChangeGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem("Color")->GetClip()->PutValue(spGauge1->GetLayers()->GetItem("Thumb")->GetRotateAngle());
	EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem("Color");
		var_Layer->PutBrightness(EXGAUGELib::exBlueChannel,var_Layer->GetRotateAngle());
	spGauge1->GetLayers()->GetItem("Thumb")->PutBrightness(EXGAUGELib::exBlueChannel,spGauge1->GetLayers()->GetItem("Color")->GetRotateAngle());
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob 1");
spGauge1->PutPicturesName(L"`Layer` + int(value  + 1) + `.png`");
spGauge1->GetLayers()->PutCount(5);
spGauge1->GetLayers()->GetItem(long(1))->PutVisible(VARIANT_FALSE);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(4));
	var_Layer->PutKey("Thumb");
	var_Layer->PutDefaultRotateAngle(-141);
	var_Layer->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer->PutRotateType(EXGAUGELib::exRotateBilinearInterpolation);
	var_Layer->PutBrightness(EXGAUGELib::exAllChannels,0);
	var_Layer->PutBrightness(EXGAUGELib::exRedChannel,100);
EXGAUGELib::ILayerPtr var_Layer1 = spGauge1->GetLayers()->Add("Color");
	var_Layer1->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer1->PutPosition(3);
	var_Layer1->PutBrightness(EXGAUGELib::exAllChannels,0);
	var_Layer1->PutBrightness(EXGAUGELib::exRedChannel,100);
	var_Layer1->GetBackground()->GetPicture()->PutName("Layer3.png");
	var_Layer1->GetClip()->GetPie()->PutSweepAngle(L"value");
	EXGAUGELib::IClipEllipsePtr var_ClipEllipse = var_Layer1->GetClip()->GetEllipse();
		var_ClipEllipse->PutRadiusX(L"150");
		var_ClipEllipse->PutRadiusY(L"150");
		var_ClipEllipse->PutInverseClip(VARIANT_TRUE);
spGauge1->GetLayers()->GetItem("Thumb")->PutRotateAngle(135);
spGauge1->EndUpdate();

53
How do I show a portion of layer with a different color (sample 1)

// Change event - Occurs when the layer's value is changed.
void OnChangeGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem("Color")->GetClip()->PutValue(spGauge1->GetLayers()->GetItem("Thumb")->GetRotateAngle());
	EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem("Color");
		var_Layer->PutBrightness(EXGAUGELib::exBlueChannel,var_Layer->GetRotateAngle());
	spGauge1->GetLayers()->GetItem("Thumb")->PutBrightness(EXGAUGELib::exBlueChannel,spGauge1->GetLayers()->GetItem("Color")->GetRotateAngle());
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob 1");
spGauge1->PutPicturesName(L"`Layer` + int(value  + 1) + `.png`");
spGauge1->GetLayers()->PutCount(5);
spGauge1->GetLayers()->GetItem(long(1))->PutVisible(VARIANT_FALSE);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(4));
	var_Layer->PutKey("Thumb");
	var_Layer->PutDefaultRotateAngle(-141);
	var_Layer->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer->PutRotateType(EXGAUGELib::exRotateBilinearInterpolation);
	var_Layer->PutBrightness(EXGAUGELib::exAllChannels,0);
	var_Layer->PutBrightness(EXGAUGELib::exGreenChannel,100);
EXGAUGELib::ILayerPtr var_Layer1 = spGauge1->GetLayers()->Add("Color");
	var_Layer1->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer1->PutPosition(3);
	var_Layer1->PutBrightness(EXGAUGELib::exAllChannels,0);
	var_Layer1->PutBrightness(EXGAUGELib::exGreenChannel,100);
	var_Layer1->GetBackground()->GetPicture()->PutName("Layer3.png");
	var_Layer1->GetClip()->GetPie()->PutSweepAngle(L"value");
spGauge1->GetLayers()->GetItem("Thumb")->PutRotateAngle(135);
spGauge1->EndUpdate();

52
How can I display / clip a picture with no transparency

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob 1");
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->Add("default");
	var_Layer->PutOnDrag(EXGAUGELib::exDoMove);
	var_Layer->GetBackground()->GetPicture()->PutName("Layer2.png");
	var_Layer->PutDefaultOffsetY(-164);
EXGAUGELib::ILayerPtr var_Layer1 = spGauge1->GetLayers()->Add("notransparency");
	var_Layer1->PutOnDrag(EXGAUGELib::exDoMove);
	var_Layer1->GetBackground()->GetPicture()->PutName("Layer2.png");
	EXGAUGELib::IClipPicturePtr var_ClipPicture = var_Layer1->GetClip()->GetPicture();
		var_ClipPicture->PutName(spGauge1->GetLayers()->GetItem("notransparency")->GetBackground()->GetPicture()->GetName());
		var_ClipPicture->PutAlphaTo(L"128");
	var_Layer1->PutGrayscale(100);
spGauge1->EndUpdate();

51
How can I resize all layers

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob 2");
spGauge1->PutPicturesName(L"`Layer` + int(value  + 1) + `.png`");
spGauge1->GetLayers()->PutCount(5);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->Add("autosize");
	var_Layer->PutVisible(VARIANT_FALSE);
	var_Layer->PutWidth(L"164");
	var_Layer->PutHeight(L"128");
spGauge1->PutLayerAutoSize(spGauge1->GetLayers()->GetItem("autosize")->GetIndex());
spGauge1->EndUpdate();

50
How can I start moving any layer when user clicks it

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// Layers(DragInfo.Layer).OnDrag = 1
}

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob");
spGauge1->PutPicturesName(L"`Layer` + int(value  + 1) + `.png`");
spGauge1->GetLayers()->PutCount(11);

49
How can I prevent dragging the layers when user right click it
// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// Cancel = Me.FormatABC("A=2",DragInfo.Button)
}

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob");
spGauge1->PutPicturesName(L"`Layer` + int(value  + 1) + `.png`");
spGauge1->GetLayers()->PutCount(11);
spGauge1->GetLayers()->GetItem(long(0))->PutOnDrag(EXGAUGELib::exDoMove);

48
Is your control DPI-Aware

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob");
spGauge1->PutPicturesName(L"`Layer` + str(value + 1) + `.png`");
spGauge1->PutDefaultLayer(EXGAUGELib::exDefLayerRotateType,long(2));
spGauge1->GetLayers()->PutCount(11);
spGauge1->GetLayers()->GetItem(long(3))->PutGrayscale(100);
spGauge1->GetLayers()->GetItem(long(4))->PutGrayscale(100);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(10));
	var_Layer->PutWidth(L"128 * dpix");
	var_Layer->PutHeight(L"128 * dpiy");
spGauge1->GetLayers()->GetItem(long(9))->PutOnDrag(EXGAUGELib::exDoRotate);
spGauge1->PutLayerAutoSize(10);

47
Is it possible to make the control transparent, I would like to put the control on a form, then make the form transparent so the control appears on the desktop with just the images contained in the layers visible

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob");
spGauge1->PutPicturesName(L"`Layer` + str(value + 1) + `.png`");
spGauge1->GetLayers()->PutCount(10);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(9));
	var_Layer->PutRotateType(EXGAUGELib::exRotateBilinearInterpolation);
	var_Layer->PutOnDrag(EXGAUGELib::exDoRotate);
spGauge1->PutAllowMoveOnClick(VARIANT_TRUE);
spGauge1->PutLayerUpdate(EXGAUGELib::exLayerUpdateScreen);

46
How can I show the layers on perspective

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob");
spGauge1->PutPicturesName(L"`Layer` + str(value + 1) + `.png`");
spGauge1->GetLayers()->PutCount(10);
spGauge1->PutDebug(EXGAUGELib::exDebugLayers);

45
Is it possible to resize all layers after they are loaded (method 2)

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob");
spGauge1->PutPicturesName(L"`Layer` + str(value + 1) + `.png`");
spGauge1->PutDefaultLayer(EXGAUGELib::exDefLayerRotateType,long(2));
spGauge1->GetLayers()->PutCount(11);
spGauge1->GetLayers()->GetItem(long(3))->PutGrayscale(100);
spGauge1->GetLayers()->GetItem(long(4))->PutGrayscale(100);
spGauge1->GetLayers()->GetItem(long(9))->PutOnDrag(EXGAUGELib::exDoRotate);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(10));
	var_Layer->PutWidth(L"128");
	var_Layer->PutHeight(L"128");
spGauge1->PutLayerAutoSize(10);

44
Is it possible to resize all layers after they are loaded (method 1)

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob");
spGauge1->PutPicturesName(L"`Layer` + str(value + 1) + `.png`");
spGauge1->PutDefaultLayer(EXGAUGELib::exDefLayerRotateType,long(2));
spGauge1->GetLayers()->PutCount(10);
spGauge1->GetLayers()->GetItem(long(3))->PutGrayscale(100);
spGauge1->GetLayers()->GetItem(long(4))->PutGrayscale(100);
spGauge1->PutLayerAutoSize(-1);

43
Is it possible to load images for different layers from different folders

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob");
spGauge1->PutPicturesName(L"`Layer` + str(value + 1) + `.png`");
spGauge1->GetLayers()->PutCount(12);
spGauge1->GetLayers()->GetItem(long(0))->GetBackground()->GetPicture()->PutName("\\..\\Clock\\vista_clock.png");
spGauge1->GetLayers()->GetItem(long(9))->GetBackground()->GetPicture()->PutName("\\..\\Knob 2\\Layer3.png");
spGauge1->GetLayers()->GetItem(long(10))->GetBackground()->GetPicture()->PutName("C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Led\\Speed\\noBack.png");
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(11));
	var_Layer->PutDefaultOffsetX(64);
	var_Layer->PutDefaultOffsetY(-36);
	EXGAUGELib::ILPicturePtr var_Picture = var_Layer->GetBackground()->GetPicture();
		var_Picture->PutName(_bstr_t("gCJKBOI4NBQaBQAhQNJJIIhShQAEEREAIA0ROZ6PT0hQEX5JIhBKhYQrFSxNNhUKoUY7/c6+R6+a7pPg0UAjaISTQwCzMEgtWQ2IyDBJJMYiNJCJgTVJuMghNTcSgFA") +
"xlNZiMinYKNRQ2NxMBhWNQkSRUAQkRRNEhYEBhMogMADOwGfY6N7eXb3DgXeamZgMGbQIStE55RZ7c7ce7/XpzZycOaBf7ZNAlZwiGQIMAnQBnAL4ACKAACABXADMAY4" +
"BLgHYiXS6VQAESyDbAHYAGwvea9E4BXhPIgXD4KQCZD4FeAJzqWFLcNQf1KkSgyFYGMDmVoAEwAHjxQDiOo7AbgKqlaj8WQBRgxDYBfmabpDRTXdumF5ZSwVboXIBrTo" +
"AhgBIwHWFREvoNZtlsb42G6Kg2g4b59AeYgAnAMpWnqBZWk2JoIkQcY8AGQAvgAPBWkcScUnceh6FoLYWAsepsGwLBsCcMIMh8C4AHYOAODOVIUHaYwviKMgvh2eIxmO" +
"RxcnHJ5MjYExBlmM5nBAVgqGodY9nuFxXGoA5al8WIJmAe5OgAIxtD6bJUimU5uC4GxFiOaxXkOc59lwOh0kkFYREWFZ6iSdhiiMQBSg0VArFWAZ0CgepijEKJdlcBZn" +
"nuaJ2n2PBZCgaAHnESZsHmRpFlKBBECQY5hA2DoOgaYYYCoC4zjObpAkCAJ+mVGgQBEFZ7CSVgbgYYYGk8c4ugODRFFgKRUnYAZ4C8E5ECqWwOl8d5/gcGgjmALQRjiU" +
"BQmg9oVDWBAIFoAZ8DmBoAlcWoBlwWAjHEK5pnSehpDALR9A2U1+FWAB3B2X4rmCJwaBcLQNmiG4AG8do6FkLRWjEOw7GsEwRBQUogCIEBRH0LJEAQeR8h4c55jyXwDm" +
"AK9TlMLIoBcS4pgAZwBGwaB3FIGIDBHopsmWS4Xh2HpUgoPhvkOcYcWANBWiCIh5GicJhnKUOvCcJp0CIGxNg6doEIUUopHSGoAA+OhhFeKgVBoGIYnCfo7HcTgdhuG4" +
"zkWBB68GdJmkKQQPcSVx6Hue47l0foMAAZ5yjkXJTBoW5ekgSglFKZ4AAYO5BDwIAdkgZZykcWg3G8OoPlgNpDicT4fH6AwZk+M4zDEMwZGMVB9GGZgqGeO51kmfAbny" +
"GQZjSVofmeepzB8Nojmqah+gQEAzCsKfvgoI5oniYOvCCZaghiWfeiWNY2mOOJ2CMKJyDUVpOhwR38EcDpWlq/4Ox6xLAxCMIkRAShQCoC4C4D42RaCpH+BAGY1wDiDF" +
"oGgbwFQIjbHuH0Y48x+BUCeE8O47h0DRBeN8FwFAFC7ESMgJ4AAOARFyCsOQSgIhbEsK0FoywZC2DaOsFAig3DOGYMwPguAzjPE8G8QZFT1ghEA5IG4QhaHIB4M8Jrag" +
"UitDqK5jIrhvj2HoLYU49hHjvA+NsWQZRligHWLoDwRAkAaGcBICIExIshBwAgQQ8ojjMCeAcB4Hh8DiGMI0X4rhiixEyNcLQBwRASAEIgKAKxjB7CMEAfIfhbjrB0E4" +
"JQGxOgWEiF4CIzhFjgDi+gfQdh2jaBqLQPo+x7CNHSEwYwfwWCfHeA5WYXgsBYAQG4bougag/B6P0eYHwpg/A4D8F4pBXArGQJwRI9RviGHyDYQARQAAVAAPoTwAACCQ" +
"GoCADgrxljzF0KwVwbgDBnGIJIDgGxnCxHgDoGInAxhmC+O4agjwUCQBMEIVAiA3ALCiMkRAKgAhcGsHEKgTg3BFikGoEQ3hqCkE0DsMILQbgCGADgVwGwsiOCKCYGQB" +
"BAgREiKoRABIkATGYK4AAThJAGBCEACYEAEhRGKBAFoCAmBgEYAkSQCQthtEuPsWwAAkgUCIAARzUgnD3HoHAS46xMDFWgDUbQLAlDMgiKsFwIw2AzGwEoUQJXQjXCIG" +
"IAwQhUh9DiJQBAxwQAwFID0IA2wjCkCQBEBYUw3g2AWMsKwNAvgqFWLQJIOwbAcBOEIMgLwxDRGkNACw7gAAwDUPkRokwYBrCKKQLo1xKhIDWGEMYOhnCGD+AETIaBOC" +
"ABEEYVY0yI1SCKE4IgrghBgEEQEA=");
		var_Picture->PutWidth(L"64");
		var_Picture->PutHeight(L"64");

42
How can I specify whether an object can be selected or not

// MouseMove event - Occurs when the user moves the mouse.
void OnMouseMoveGauge1(short   Button,short   Shift,long   X,long   Y)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	OutputDebugStringW( _bstr_t(spGauge1->GetLayerFromPoint(-1,-1)) );
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob");
spGauge1->PutPicturesName(L"`Layer` + str(value + 1) + `.png`");
spGauge1->GetLayers()->PutCount(12);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(10));
	var_Layer->PutRotateType(EXGAUGELib::exRotateBilinearInterpolation);
	var_Layer->PutOnDrag(EXGAUGELib::exDoRotate);
	EXGAUGELib::ILPicturePtr var_Picture = var_Layer->GetBackground()->GetExtraPicture("extra1");
		var_Picture->PutName("Layer1.png");
		var_Picture->PutLeft(L"32");
		var_Picture->PutTop(L"32");
		var_Picture->PutWidth(L"64");
		var_Picture->PutHeight(L"64");
	EXGAUGELib::IForegroundPtr var_Foreground = var_Layer->GetForeground();
		var_Foreground->PutCaption(EXGAUGELib::exLayerCaption,"<sha ;;0>selectable");
		var_Foreground->PutCaption(EXGAUGELib::exLayerCaptionLeft,long(38));
		var_Foreground->PutCaption(EXGAUGELib::exLayerCaptionTop,long(-5));
EXGAUGELib::ILayerPtr var_Layer1 = spGauge1->GetLayers()->GetItem(long(11));
	EXGAUGELib::ILPicturePtr var_Picture1 = var_Layer1->GetBackground()->GetExtraPicture("extra2");
		var_Picture1->PutName("Layer1.png");
		var_Picture1->PutLeft(L"width-64");
		var_Picture1->PutTop(L"height-84 - 32");
		var_Picture1->PutWidth(L"64");
		var_Picture1->PutHeight(L"64");
		var_Picture1->PutSelectable(VARIANT_FALSE);
	var_Layer1->PutBrightness(EXGAUGELib::exAllChannels,25);
	EXGAUGELib::IForegroundPtr var_Foreground1 = var_Layer1->GetForeground();
		var_Foreground1->PutCaption(EXGAUGELib::exLayerCaption,"<sha ;;0>not selectable");
		var_Foreground1->PutCaption(EXGAUGELib::exLayerCaptionAnchor,long(8));
		var_Foreground1->PutCaption(EXGAUGELib::exLayerCaptionTop,"height-theight/4");
spGauge1->EndUpdate();

41
How do I get the layer/object/picture from the cursor
// MouseMove event - Occurs when the user moves the mouse.
void OnMouseMoveGauge1(short   Button,short   Shift,long   X,long   Y)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	OutputDebugStringW( _bstr_t(spGauge1->GetLayerFromPoint(-1,-1)) );
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob");
spGauge1->PutPicturesName(L"`Layer` + str(value + 1) + `.png`");
spGauge1->GetLayers()->PutCount(10);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(9));
	var_Layer->PutRotateType(EXGAUGELib::exRotateBilinearInterpolation);
	var_Layer->PutOnDrag(EXGAUGELib::exDoRotate);

40
How can I display a speedometer

// Change event - Occurs when the layer's value is changed.
void OnChangeGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem("arc")->GetClip()->PutValue(spGauge1->GetValue());
	spGauge1->GetLayers()->GetItem("noDigit")->GetBackground()->GetExtraPicture("80")->PutName(spGauge1->FormatABC(L"`no` + int((value MIN 0 MAX 99)/10) + `.png`",spGauge1->GetValue(),vtMissing,vtMissing));
	spGauge1->GetLayers()->GetItem("noDigit")->GetBackground()->GetExtraPicture("08")->PutName(spGauge1->FormatABC(L"`no` + int((value MIN 0 MAX 99) mod 10) + `.png`",spGauge1->GetValue(),vtMissing,vtMissing));
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(spGauge1->FormatABC(L"value + B",spGauge1->GetValue(),Delta,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutBackColor(RGB(40,40,40));
spGauge1->PutAllowSmoothChange(EXGAUGELib::exSmoothChangeless);
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Led\\Speed");
spGauge1->GetLayers()->PutCount(6);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
	var_Layer->PutKey("arcBack");
	var_Layer->GetBackground()->GetPicture()->PutName("noArcBack.png");
	EXGAUGELib::IClipPiePtr var_ClipPie = var_Layer->GetClip()->GetPie();
		var_ClipPie->PutStartAngle(L"240");
		var_ClipPie->PutSweepAngle(L"240");
EXGAUGELib::ILayerPtr var_Layer1 = spGauge1->GetLayers()->GetItem(long(1));
	var_Layer1->PutKey("arc");
	var_Layer1->GetBackground()->GetPicture()->PutName("noArc.png");
	EXGAUGELib::IClipPiePtr var_ClipPie1 = var_Layer1->GetClip()->GetPie();
		var_ClipPie1->PutStartAngle(L"240");
		var_ClipPie1->PutSweepAngle(L"value/100 * 240");
EXGAUGELib::ILayerPtr var_Layer2 = spGauge1->GetLayers()->GetItem(long(2));
	var_Layer2->PutRotateType(EXGAUGELib::exRotateBilinearInterpolation);
	var_Layer2->PutKey("pointer");
	var_Layer2->GetBackground()->GetPicture()->PutName("noLine.png");
	var_Layer2->PutDefaultRotateAngle(240);
	var_Layer2->PutRotateAngleToValue(L"value/240 * 100");
	var_Layer2->PutValueToRotateAngle(L"value / 100 * 240");
	var_Layer2->PutRotateAngleValid(L"value > 240 ? (value > 300 ? 0 : 240) : value");
	var_Layer2->PutOnDrag(EXGAUGELib::exDoRotate);
EXGAUGELib::ILayerPtr var_Layer3 = spGauge1->GetLayers()->GetItem(long(3));
	var_Layer3->PutKey("noBack");
	var_Layer3->PutLeft(L"(width - 55 * 2)/2");
	var_Layer3->PutTop(L"(height - 94 * 1)/2");
	var_Layer3->PutWidth(L"2 * 45 + 8");
	var_Layer3->PutHeight(L"1 * 94");
	var_Layer3->PutTransparency(90);
	EXGAUGELib::ILPicturePtr var_Picture = var_Layer3->GetBackground()->GetExtraPicture("80");
		var_Picture->PutName("noBack.png");
		var_Picture->PutLeft(L"-4");
		var_Picture->PutWidth(L"70");
	EXGAUGELib::ILPicturePtr var_Picture1 = var_Layer3->GetBackground()->GetExtraPicture("08");
		var_Picture1->PutName("noBack.png");
		var_Picture1->PutLeft(L"36");
		var_Picture1->PutWidth(L"70");
EXGAUGELib::ILayerPtr var_Layer4 = spGauge1->GetLayers()->GetItem(long(4));
	var_Layer4->PutKey("noDigit");
	var_Layer4->PutLeft(L"(width - 55 * 2)/2");
	var_Layer4->PutTop(L"(height - 94 * 1)/2");
	var_Layer4->PutWidth(L"2 * 45 + 8");
	var_Layer4->PutHeight(L"1 * 94");
	EXGAUGELib::ILPicturePtr var_Picture2 = var_Layer4->GetBackground()->GetExtraPicture("80");
		var_Picture2->PutName("no1.png");
		var_Picture2->PutLeft(L"-4");
		var_Picture2->PutWidth(L"70");
	EXGAUGELib::ILPicturePtr var_Picture3 = var_Layer4->GetBackground()->GetExtraPicture("08");
		var_Picture3->PutName("no2.png");
		var_Picture3->PutLeft(L"36");
		var_Picture3->PutWidth(L"70");
EXGAUGELib::ILayerPtr var_Layer5 = spGauge1->GetLayers()->GetItem(long(5));
	var_Layer5->PutKey("noCap");
	var_Layer5->GetBackground()->GetPicture()->PutName("noCap.png");
	var_Layer5->PutTransparency(45);
spGauge1->GetLayers()->GetItem("pointer")->PutPosition(spGauge1->GetLayers()->GetItem("noCap")->GetPosition());
spGauge1->PutLayerOfValue(spGauge1->GetLayers()->GetItem("pointer")->GetIndex());
spGauge1->PutValue(long(56));
spGauge1->EndUpdate();

39
How can I display LED-numbers

// Change event - Occurs when the layer's value is changed.
void OnChangeGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(spGauge1->FormatABC(L"value MIN 0 MAX 99",->GetValue(),vtMissing,vtMissing));
	spGauge1->GetLayers()->GetItem("noDigit")->GetBackground()->GetExtraPicture("80")->PutName(spGauge1->FormatABC(L"`no` + int((value MIN 0 MAX 99)/10) + `.png`",spGauge1->GetValue(),vtMissing,vtMissing));
	spGauge1->GetLayers()->GetItem("noDigit")->GetBackground()->GetExtraPicture("08")->PutName(spGauge1->FormatABC(L"`no` + int((value MIN 0 MAX 99) mod 10) + `.png`",spGauge1->GetValue(),vtMissing,vtMissing));
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(spGauge1->FormatABC(L"value + B",spGauge1->GetLayers()->GetItem("noDigit")->GetValue(),Delta,vtMissing));
}

// Timer event - Occurs when the interval elapses.
void OnTimerGauge1(long   TickCount)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(spGauge1->FormatABC(L"value = 99 ? 0 : ( value  + B )",spGauge1->GetValue(),long(1),vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutAllowSmoothChange(EXGAUGELib::exSmoothChangeless);
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Led\\Speed");
spGauge1->GetLayers()->PutCount(3);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(1));
	var_Layer->PutKey("noBack");
	var_Layer->PutLeft(L"(width - 55 * 2)/2");
	var_Layer->PutTop(L"(height - 94 * 1)/2");
	var_Layer->PutWidth(L"2 * 45 + 8");
	var_Layer->PutHeight(L"1 * 94");
	var_Layer->PutTransparency(90);
	EXGAUGELib::ILPicturePtr var_Picture = var_Layer->GetBackground()->GetExtraPicture("80");
		var_Picture->PutName("noBack.png");
		var_Picture->PutLeft(L"-4");
		var_Picture->PutWidth(L"70");
	EXGAUGELib::ILPicturePtr var_Picture1 = var_Layer->GetBackground()->GetExtraPicture("08");
		var_Picture1->PutName("noBack.png");
		var_Picture1->PutLeft(L"36");
		var_Picture1->PutWidth(L"70");
EXGAUGELib::ILayerPtr var_Layer1 = spGauge1->GetLayers()->GetItem(long(2));
	var_Layer1->PutKey("noDigit");
	var_Layer1->PutLeft(L"(width - 55 * 2)/2");
	var_Layer1->PutTop(L"(height - 94 * 1)/2");
	var_Layer1->PutWidth(L"2 * 45 + 8");
	var_Layer1->PutHeight(L"1 * 94");
	EXGAUGELib::ILPicturePtr var_Picture2 = var_Layer1->GetBackground()->GetExtraPicture("80");
		var_Picture2->PutName("no1.png");
		var_Picture2->PutLeft(L"-4");
		var_Picture2->PutWidth(L"70");
	EXGAUGELib::ILPicturePtr var_Picture3 = var_Layer1->GetBackground()->GetExtraPicture("08");
		var_Picture3->PutName("no2.png");
		var_Picture3->PutLeft(L"36");
		var_Picture3->PutWidth(L"70");
spGauge1->PutLayerOfValue(spGauge1->GetLayers()->GetItem("noDigit")->GetIndex());
spGauge1->PutValue(long(73));
spGauge1->PutTimerInterval(100);
spGauge1->EndUpdate();

38
How can I display a simple knob, to fit the control's client area

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob 1");
spGauge1->PutPicturesName(L"`Layer` + str(value + 1) + `.png`");
spGauge1->PutLayerAutoSize(-1);
spGauge1->PutDefaultLayer(EXGAUGELib::exDefLayerWidth,"width MAX height");
spGauge1->PutDefaultLayer(EXGAUGELib::exDefLayerHeight,"width MAX height");
spGauge1->GetLayers()->PutCount(5);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(4));
	var_Layer->PutOnDrag(EXGAUGELib::exDoRotamove);
	var_Layer->PutDefaultRotateAngle(-142);

37
How can I display a switch

// Click event - Occurs when the user presses and then releases the left mouse button over the control.
void OnClickGauge1()
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(spGauge1->FormatABC(L"(value + 1) mod 2",->GetValue(),vtMissing,vtMissing));
}

// DragEnd event - Occurs once the user ends dragging a layer.
void OnDragEndGauge1(LPDISPATCH   DragInfo,BOOL   Cancel)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(spGauge1->FormatABC(L"(value < 24 ? 0 : 1)",spGauge1->GetLayers()->GetItem("knob")->GetOffsetX(),vtMissing,vtMissing));
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(spGauge1->FormatABC(L"value > 0 ? 1 : 0",Delta,vtMissing,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Linear\\Switch");
spGauge1->GetLayers()->PutCount(4);
spGauge1->GetLayers()->GetItem(long(0))->GetBackground()->GetPicture()->PutName("background.png");
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(1));
	EXGAUGELib::ILPicturePtr var_Picture = var_Layer->GetBackground()->GetPicture();
		var_Picture->PutName("Indicator_ON.png");
		var_Picture->PutDisplayAs(EXGAUGELib::MiddleLeft);
	var_Layer->PutOffsetXValid(L"48");
	var_Layer->PutOffsetYValid(L"0");
EXGAUGELib::ILayerPtr var_Layer1 = spGauge1->GetLayers()->GetItem(long(2));
	EXGAUGELib::ILPicturePtr var_Picture1 = var_Layer1->GetBackground()->GetPicture();
		var_Picture1->PutName("Indicator_OFF.png");
		var_Picture1->PutDisplayAs(EXGAUGELib::MiddleRight);
	var_Layer1->PutOffsetXValid(L"-12");
	var_Layer1->PutOffsetYValid(L"0");
EXGAUGELib::ILayerPtr var_Layer2 = spGauge1->GetLayers()->GetItem(long(3));
	var_Layer2->PutOnDrag(EXGAUGELib::exDoMove);
	var_Layer2->PutKey("knob");
	EXGAUGELib::ILPicturePtr var_Picture2 = var_Layer2->GetBackground()->GetPicture();
		var_Picture2->PutName("knob.png");
		var_Picture2->PutDisplayAs(EXGAUGELib::MiddleCenter);
	var_Layer2->PutDefaultOffsetY("9");
	var_Layer2->PutDefaultOffsetX("-5");
	var_Layer2->PutOffsetYValid(L"0");
	var_Layer2->PutValueToOffsetX(L"value = 0 ? 0 : 48");
	var_Layer2->PutOffsetToValue(L"value = 0 ? 0 : 1");
	var_Layer2->PutOffsetXValid(L"(value MIN 0 MAX 48)");
spGauge1->PutLayerOfValue(spGauge1->GetLayers()->GetItem("knob")->GetIndex());
spGauge1->PutValue(long(1));

36
How can I colorize the layer

// Change event - Occurs when the layer's value is changed.
void OnChangeGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutCaption(EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` Value: <b>` + (value format ``)",spGauge1->GetLayers()->GetItem(long(4))->GetValue(),vtMissing,vtMissing));
}

// Click event - Occurs when the user presses and then releases the left mouse button over the control.
void OnClickGauge1()
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	ObjectPtr var_Object = spGauge1->GetLayers()->GetItem(spGauge1->GetLayerFromPoint(-1,-1));
}

// MouseIn event - Notifies that the cursor enters the layer.
void OnMouseInGauge1(long   Layer)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(Layer);
		var_Layer->PutBrightness(EXGAUGELib::exRedChannel,100);
		var_Layer->PutBrightness(EXGAUGELib::exGreenChannel,0);
		var_Layer->PutBrightness(EXGAUGELib::exBlueChannel,0);
}

// MouseOut event - Notifies that the cursor exits the layer.
void OnMouseOutGauge1(long   Layer)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(Layer);
		var_Layer->PutBrightness(EXGAUGELib::exRedChannel,spGauge1->GetDefaultLayer(EXGAUGELib::exDefLayerBrightness));
		var_Layer->PutBrightness(EXGAUGELib::exGreenChannel,spGauge1->GetDefaultLayer(EXGAUGELib::exDefLayerBrightness));
		var_Layer->PutBrightness(EXGAUGELib::exBlueChannel,spGauge1->GetDefaultLayer(EXGAUGELib::exDefLayerBrightness));
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(spGauge1->FormatABC(L"A - B",->GetValue(),Delta,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutDefaultLayer(EXGAUGELib::exDefLayerBrightness,long(51));
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob 2");
spGauge1->PutPicturesName(L"`Layer` + str(value + 1) + `.png`");
spGauge1->GetLayers()->PutCount(6);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
	var_Layer->PutRotateCenterX(L"lwidth/2-3");
	var_Layer->PutRotateCenterY(L"lheight/2+23");
EXGAUGELib::ILayerPtr var_Layer1 = spGauge1->GetLayers()->GetItem(long(4));
	var_Layer1->PutDefaultRotateAngle(-132);
	var_Layer1->PutOnDrag(EXGAUGELib::exDoRotamove);
	var_Layer1->PutRotateAngleValid(L"value < 0 ? 0  : (value > 236 ? (value > 300 ? 0 : 236 ) : value)");
	var_Layer1->PutValueToRotateAngle(L"value < 20 ? (value /20 * 86) : (value - 20) / (90-20) * (236-86) + 86");
	var_Layer1->PutRotateAngleToValue(L"value < 86 ? value / 86 * 20: ( 20 + ( value -86 ) / (236-86) * 70 )");
spGauge1->PutValue(long(45));
spGauge1->EndUpdate();

35
How can I imitate the rotating angle on an unequal scale

// Change event - Occurs when the layer's value is changed.
void OnChangeGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutCaption(EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` Value: <b>` + (value format ``)",spGauge1->GetLayers()->GetItem(long(4))->GetValue(),vtMissing,vtMissing));
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(spGauge1->FormatABC(L"A - B",->GetValue(),Delta,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob 2");
spGauge1->PutPicturesName(L"`Layer` + str(value + 1) + `.png`");
spGauge1->GetLayers()->PutCount(6);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
	var_Layer->PutRotateCenterX(L"lwidth/2-3");
	var_Layer->PutRotateCenterY(L"lheight/2+23");
EXGAUGELib::ILayerPtr var_Layer1 = spGauge1->GetLayers()->GetItem(long(4));
	var_Layer1->PutDefaultRotateAngle(-132);
	var_Layer1->PutOnDrag(EXGAUGELib::exDoRotamove);
	var_Layer1->PutRotateAngleValid(L"value < 0 ? 0  : (value > 236 ? (value > 300 ? 0 : 236 ) : value)");
	var_Layer1->PutValueToRotateAngle(L"value < 20 ? (value /20 * 86) : (value - 20) / (90-20) * (236-86) + 86");
	var_Layer1->PutRotateAngleToValue(L"value < 86 ? value / 86 * 20: ( 20 + ( value -86 ) / (236-86) * 70 )");
spGauge1->PutValue(long(45));
spGauge1->EndUpdate();

34
How can I rotate more knobs at once

// Change event - Occurs when the layer's value is changed.
void OnChangeGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutCaption(EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` Value: <b>` + (value format ``)",spGauge1->GetLayers()->GetItem(long(4))->GetValue(),vtMissing,vtMissing));
	spGauge1->GetLayers()->GetItem(long(2))->PutRotateAngle(spGauge1->GetLayers()->GetItem(long(4))->GetRotateAngle());
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem(long(4))->PutRotateAngle(spGauge1->FormatABC(L"A - B",spGauge1->GetLayers()->GetItem(long(4))->GetRotateAngle(),Delta,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob 1");
spGauge1->PutPicturesName(L"`Layer` + str(value + 1) + `.png`");
spGauge1->GetLayers()->PutCount(5);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(4));
	var_Layer->PutOnDrag(EXGAUGELib::exDoRotamove);
	var_Layer->PutDefaultRotateAngle(-142);
EXGAUGELib::ILayerPtr var_Layer1 = spGauge1->GetLayers()->GetItem(long(2));
	var_Layer1->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer1->PutRotateType(EXGAUGELib::exRotateBilinearInterpolation);

33
How can I clip one layer while other is rotating

// Change event - Occurs when the layer's value is changed.
void OnChangeGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutCaption(EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` Value: <b>` + (value format ``)",spGauge1->GetLayers()->GetItem(long(9))->GetValue(),vtMissing,vtMissing));
	spGauge1->PutExtraCaption("RotateAngle",EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` RotateAngle: <b>` + ( A format `` ) + `°`",spGauge1->GetLayers()->GetItem(long(9))->GetRotateAngle(),vtMissing,vtMissing));
	spGauge1->PutExtraCaption("RotateAngle",EXGAUGELib::exLayerCaptionTop,long(18));
	spGauge1->PutExtraCaption("RotamoveCenter",EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` RotamoveCenter: <b> (` + A + `,` + B + `)`",spGauge1->GetLayers()->GetItem(long(9))->GetRotamoveCenterX(),spGauge1->GetLayers()->GetItem(long(9))->GetRotamoveCenterY(),vtMissing));
	spGauge1->PutExtraCaption("RotamoveCenter",EXGAUGELib::exLayerCaptionTop,long(36));
	spGauge1->PutExtraCaption("RotamoveOffset",EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` RotamoveOffset: <b> (` + A + `,` + B + `)`",spGauge1->GetLayers()->GetItem(long(9))->GetRotamoveOffsetX(),spGauge1->GetLayers()->GetItem(long(9))->GetRotamoveOffsetY(),vtMissing));
	spGauge1->PutExtraCaption("RotamoveOffset",EXGAUGELib::exLayerCaptionTop,long(54));
	spGauge1->PutExtraCaption("Offset",EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` Offset: <b> (` + A + `,` + B + `)`",spGauge1->GetLayers()->GetItem(long(9))->GetOffsetX(),spGauge1->GetLayers()->GetItem(long(9))->GetOffsetY(),vtMissing));
	spGauge1->PutExtraCaption("Offset",EXGAUGELib::exLayerCaptionTop,long(72));
	spGauge1->PutExtraCaption("Client",EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"`<sha ;;0><font ;12><b>` + ((100 - value) format ``)",spGauge1->GetValue(),vtMissing,vtMissing));
	spGauge1->PutExtraCaption("Client",EXGAUGELib::exLayerCaptionLeft,spGauge1->FormatABC(L"value - 12",->GetItem(long(9))->GetLayerToClientX(spGauge1->GetLayers()->GetRotamoveCenterX(),->GetRotamoveCenterY()),vtMissing,vtMissing));
	spGauge1->PutExtraCaption("Client",EXGAUGELib::exLayerCaptionTop,spGauge1->FormatABC(L"value - 36",->GetItem(long(9))->GetLayerToClientY(spGauge1->GetLayers()->GetRotamoveCenterX(),->GetRotamoveCenterY()),vtMissing,vtMissing));
	spGauge1->GetLayers()->GetItem(long(3))->GetClip()->PutValue(spGauge1->GetLayers()->GetItem(long(9))->GetRotateAngle());
	spGauge1->GetLayers()->GetItem(long(4))->GetClip()->PutValue(spGauge1->GetLayers()->GetItem(long(3))->GetClip()->GetValue());
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.RotateAngleValid = "value < 0 ? 0 : ( value >= 360 ? 359.999 : value )"
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(spGauge1->FormatABC(L"100 - value - B",spGauge1->GetValue(),Delta,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob");
spGauge1->PutPicturesName(L"`Layer` + str(value + 1) + `.png`");
spGauge1->GetLayers()->PutCount(11);
spGauge1->PutAllowSmoothChange(EXGAUGELib::exSmoothChangeless);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(9));
	var_Layer->PutDefaultRotateAngle(-126);
	var_Layer->PutOnDrag(EXGAUGELib::exDoRotamove);
	var_Layer->PutRotateAngleToValue(L"100 - value / 360 * 100");
	var_Layer->PutValueToRotateAngle(L"(value)/100 * 360");
spGauge1->GetLayers()->GetItem(long(3))->GetClip()->GetPie()->PutSweepAngle(L"value");
spGauge1->GetLayers()->GetItem(long(4))->GetClip()->GetPie()->PutSweepAngle(spGauge1->GetLayers()->GetItem(long(3))->GetClip()->GetPie()->GetSweepAngle());
spGauge1->GetLayers()->GetItem(long(9))->PutValue(long(25));
spGauge1->EndUpdate();

32
Can I move one or more layers at once

// Change event - Occurs when the layer's value is changed.
void OnChangeGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem(long(3))->PutBrightness(EXGAUGELib::exRedChannel,spGauge1->FormatABC(L"100 - value ",spGauge1->GetValue(),vtMissing,vtMissing));
	spGauge1->GetLayers()->GetItem(long(4))->PutBrightness(EXGAUGELib::exRedChannel,spGauge1->GetLayers()->GetItem(long(3))->GetBrightness(EXGAUGELib::exRedChannel));
	spGauge1->PutCaption(EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` Value: <b>` + (100 - value format ``)",spGauge1->GetLayers()->GetItem(long(9))->GetValue(),vtMissing,vtMissing));
	spGauge1->PutExtraCaption("RotateAngle",EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` RotateAngle: <b>` + ( A format `` ) + `°`",spGauge1->GetLayers()->GetItem(long(9))->GetRotateAngle(),vtMissing,vtMissing));
	spGauge1->PutExtraCaption("RotateAngle",EXGAUGELib::exLayerCaptionTop,long(18));
	spGauge1->PutExtraCaption("RotamoveCenter",EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` RotamoveCenter: <b> (` + A + `,` + B + `)`",spGauge1->GetLayers()->GetItem(long(9))->GetRotamoveCenterX(),spGauge1->GetLayers()->GetItem(long(9))->GetRotamoveCenterY(),vtMissing));
	spGauge1->PutExtraCaption("RotamoveCenter",EXGAUGELib::exLayerCaptionTop,long(36));
	spGauge1->PutExtraCaption("RotamoveOffset",EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` RotamoveOffset: <b> (` + A + `,` + B + `)`",spGauge1->GetLayers()->GetItem(long(9))->GetRotamoveOffsetX(),spGauge1->GetLayers()->GetItem(long(9))->GetRotamoveOffsetY(),vtMissing));
	spGauge1->PutExtraCaption("RotamoveOffset",EXGAUGELib::exLayerCaptionTop,long(54));
	spGauge1->PutExtraCaption("Offset",EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` Offset: <b> (` + A + `,` + B + `)`",spGauge1->GetLayers()->GetItem(long(9))->GetOffsetX(),spGauge1->GetLayers()->GetItem(long(9))->GetOffsetY(),vtMissing));
	spGauge1->PutExtraCaption("Offset",EXGAUGELib::exLayerCaptionTop,long(72));
	spGauge1->GetLayers()->GetItem(long(10))->PutRotateAngle(spGauge1->GetLayers()->GetItem(long(9))->GetRotateAngle());
}

// DblClick event - Occurs when the user dblclk the left mouse button over an object.
void OnDblClickGauge1(short   Shift,long   X,long   Y)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(long(0));
}

// Drag event - Notifies that the user drags the layer.
void OnDragGauge1(LPDISPATCH   DragInfo)
{
	// ExtraCaption("Clockwise",0) = FormatABC( "` Clockwise: <b>` + ( value != 0 ? `Yes` : `No`) ", DragInfo.Clockwise )
	// ExtraCaption("Cumulative",0) = FormatABC( "` CumulativeRotateAngle: <b>` + ( value format `` ) + `°` ", DragInfo.CumulativeRotateAngle )
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	OutputDebugStringW( L"DragInfo" );
	spGauge1->PutExtraCaption("Clockwise",EXGAUGELib::exLayerCaptionTop,long(90));
	spGauge1->PutExtraCaption("Cumulative",EXGAUGELib::exLayerCaptionTop,long(108));
}

// DragEnd event - Occurs once the user ends dragging a layer.
void OnDragEndGauge1(LPDISPATCH   DragInfo,BOOL   Cancel)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutExtraCaption("Clockwise",EXGAUGELib::exLayerCaption,"");
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.Debug  = 227
	// DragInfo.RotateAngleValid = "value < 0 ? 0 : (value > 360 ? 359.999999 : value)"
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutExtraCaption("Clockwise",EXGAUGELib::exLayerCaption,"");
	spGauge1->PutExtraCaption("Cumulative",EXGAUGELib::exLayerCaption,"");
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(spGauge1->FormatABC(L"100 - A - B",spGauge1->GetValue(),Delta,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob");
spGauge1->PutPicturesName(L"`Layer` + str(value + 1) + `.png`");
spGauge1->PutDefaultLayer(EXGAUGELib::exDefLayerRotateType,long(2));
spGauge1->GetLayers()->PutCount(11);
spGauge1->PutAllowSmoothChange(EXGAUGELib::exSmoothChangeless);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(9));
	var_Layer->PutOnDrag(EXGAUGELib::exDoRotamove);
	var_Layer->PutDefaultRotateAngle(-126);
	var_Layer->PutRotateAngleToValue(L"100 - (value ) / 360 * 100");
	var_Layer->PutValueToRotateAngle(L"(value)/100 * 360");
EXGAUGELib::ILayerPtr var_Layer1 = spGauge1->GetLayers()->GetItem(long(10));
	var_Layer1->PutGrayscale(100);
	var_Layer1->PutTransparency(25);
	var_Layer1->PutDefaultRotateAngle(-69.5);
	var_Layer1->PutRotateAngleToValue(L"100 - (value ) / 360 * 100");
	var_Layer1->PutValueToRotateAngle(L"(value 1)/100 * 360");
	var_Layer1->GetBackground()->GetPicture()->PutValue("Highlighted_Layer4.png");
EXGAUGELib::ILayerPtr var_Layer2 = spGauge1->GetLayers()->GetItem(long(3));
	var_Layer2->PutBrightness(EXGAUGELib::exAllChannels,0);
	var_Layer2->PutBrightness(EXGAUGELib::exRedChannel,0);
EXGAUGELib::ILayerPtr var_Layer3 = spGauge1->GetLayers()->GetItem(long(4));
	var_Layer3->PutBrightness(EXGAUGELib::exAllChannels,0);
	var_Layer3->PutBrightness(EXGAUGELib::exRedChannel,0);
spGauge1->PutLayerOfValue(9);
spGauge1->PutValue(long(5));
spGauge1->EndUpdate();

31
How can I rotate a knob by moving ( rotamove )

// Change event - Occurs when the layer's value is changed.
void OnChangeGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem(long(3))->PutTransparency(spGauge1->GetValue());
	spGauge1->GetLayers()->GetItem(long(4))->PutTransparency(spGauge1->GetValue());
	spGauge1->PutCaption(EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` Value: <b>` + (100 - value format ``)",spGauge1->GetLayers()->GetItem(long(9))->GetValue(),vtMissing,vtMissing));
	spGauge1->PutExtraCaption("RotateAngle",EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` RotateAngle: <b>` + ( A format `` ) + `°`",spGauge1->GetLayers()->GetItem(long(9))->GetRotateAngle(),vtMissing,vtMissing));
	spGauge1->PutExtraCaption("RotateAngle",EXGAUGELib::exLayerCaptionTop,long(18));
	spGauge1->PutExtraCaption("RotamoveCenter",EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` RotamoveCenter: <b> (` + A + `,` + B + `)`",spGauge1->GetLayers()->GetItem(long(9))->GetRotamoveCenterX(),spGauge1->GetLayers()->GetItem(long(9))->GetRotamoveCenterY(),vtMissing));
	spGauge1->PutExtraCaption("RotamoveCenter",EXGAUGELib::exLayerCaptionTop,long(36));
	spGauge1->PutExtraCaption("RotamoveOffset",EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` RotamoveOffset: <b> (` + A + `,` + B + `)`",spGauge1->GetLayers()->GetItem(long(9))->GetRotamoveOffsetX(),spGauge1->GetLayers()->GetItem(long(9))->GetRotamoveOffsetY(),vtMissing));
	spGauge1->PutExtraCaption("RotamoveOffset",EXGAUGELib::exLayerCaptionTop,long(54));
	spGauge1->PutExtraCaption("Offset",EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` Offset: <b> (` + A + `,` + B + `)`",spGauge1->GetLayers()->GetItem(long(9))->GetOffsetX(),spGauge1->GetLayers()->GetItem(long(9))->GetOffsetY(),vtMissing));
	spGauge1->PutExtraCaption("Offset",EXGAUGELib::exLayerCaptionTop,long(72));
}

// DblClick event - Occurs when the user dblclk the left mouse button over an object.
void OnDblClickGauge1(short   Shift,long   X,long   Y)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(long(0));
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.RotateAngleValid = "value < 0 ? 0 : (value > 360 ? 359.999999 : value)"
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(spGauge1->FormatABC(L"100 - A - B",spGauge1->GetValue(),Delta,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob");
spGauge1->PutPicturesName(L"`Layer` + str(value + 1) + `.png`");
spGauge1->GetLayers()->PutCount(11);
spGauge1->PutAllowSmoothChange(EXGAUGELib::exSmoothChangeless);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(9));
	var_Layer->PutOnDrag(EXGAUGELib::exDoRotamove);
	var_Layer->PutDefaultRotateAngle(-126);
	var_Layer->PutRotateAngleToValue(L"100 - value / 360 * 100");
	var_Layer->PutValueToRotateAngle(L"(value)/100 * 360");
	var_Layer->GetBackground()->GetExtraPicture("Aka")->PutValue("Highlighted_Layer4.png");
EXGAUGELib::ILayerPtr var_Layer1 = spGauge1->GetLayers()->GetItem(long(3));
	var_Layer1->PutBrightness(EXGAUGELib::exAllChannels,0);
	var_Layer1->PutBrightness(EXGAUGELib::exRedChannel,100);
EXGAUGELib::ILayerPtr var_Layer2 = spGauge1->GetLayers()->GetItem(long(4));
	var_Layer2->PutOnDrag(EXGAUGELib::exDoRotamove);
	var_Layer2->PutBrightness(EXGAUGELib::exAllChannels,0);
	var_Layer2->PutBrightness(EXGAUGELib::exRedChannel,100);
spGauge1->PutValue(long(15));
spGauge1->EndUpdate();

30
How can I display a knob, and displays the current value on it

// Change event - Occurs when the layer's value is changed.
void OnChangeGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutCaption(EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` Value: <b>` + (100 - value format ``)",spGauge1->GetLayers()->GetItem(long(9))->GetValue(),vtMissing,vtMissing));
	spGauge1->PutExtraCaption("RotateAngle",EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` RotateAngle: <b>` + ( A format `` ) + `°`",spGauge1->GetLayers()->GetItem(long(9))->GetRotateAngle(),vtMissing,vtMissing));
	spGauge1->PutExtraCaption("RotateAngle",EXGAUGELib::exLayerCaptionTop,long(18));
	spGauge1->PutExtraCaption("RotamoveCenter",EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` RotamoveCenter: <b> (` + A + `,` + B + `)`",spGauge1->GetLayers()->GetItem(long(9))->GetRotamoveCenterX(),spGauge1->GetLayers()->GetItem(long(9))->GetRotamoveCenterY(),vtMissing));
	spGauge1->PutExtraCaption("RotamoveCenter",EXGAUGELib::exLayerCaptionTop,long(36));
	spGauge1->PutExtraCaption("RotamoveOffset",EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` RotamoveOffset: <b> (` + A + `,` + B + `)`",spGauge1->GetLayers()->GetItem(long(9))->GetRotamoveOffsetX(),spGauge1->GetLayers()->GetItem(long(9))->GetRotamoveOffsetY(),vtMissing));
	spGauge1->PutExtraCaption("RotamoveOffset",EXGAUGELib::exLayerCaptionTop,long(54));
	spGauge1->PutExtraCaption("Offset",EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"` Offset: <b> (` + A + `,` + B + `)`",spGauge1->GetLayers()->GetItem(long(9))->GetOffsetX(),spGauge1->GetLayers()->GetItem(long(9))->GetOffsetY(),vtMissing));
	spGauge1->PutExtraCaption("Offset",EXGAUGELib::exLayerCaptionTop,long(72));
	spGauge1->PutExtraCaption("Client",EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"`<sha ;;0><font ;12><b>` + (100 - value format `0`)",spGauge1->GetValue(),vtMissing,vtMissing));
	spGauge1->PutExtraCaption("Client",EXGAUGELib::exLayerCaptionLeft,spGauge1->FormatABC(L"value - 8",spGauge1->GetLayers()->GetItem(long(9))->GetLayerToClientX(spGauge1->GetLayers()->GetItem(long(9))->GetRotamoveCenterX(),spGauge1->GetLayers()->GetItem(long(9))->GetRotamoveCenterY()),vtMissing,vtMissing));
	spGauge1->PutExtraCaption("Client",EXGAUGELib::exLayerCaptionTop,spGauge1->FormatABC(L"value - 26",spGauge1->GetLayers()->GetItem(long(9))->GetLayerToClientY(spGauge1->GetLayers()->GetItem(long(9))->GetRotamoveCenterX(),spGauge1->GetLayers()->GetItem(long(9))->GetRotamoveCenterY()),vtMissing,vtMissing));
	spGauge1->GetLayers()->GetItem(long(7))->PutRotateAngle(spGauge1->GetLayers()->GetItem(long(0))->GetRotateAngle());
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(spGauge1->FormatABC(L"100 - A - B",spGauge1->GetValue(),Delta,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob");
spGauge1->PutPicturesName(L"`Layer` + str(value + 1) + `.png`");
spGauge1->GetLayers()->PutCount(11);
spGauge1->PutAllowSmoothChange(EXGAUGELib::exSmoothChangeless);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(9));
	var_Layer->PutDefaultRotateAngle(-126);
	var_Layer->PutOnDrag(EXGAUGELib::exDoRotamove);
	var_Layer->PutRotateAngleToValue(L"100 - (value / 360 * 100)");
	var_Layer->PutValueToRotateAngle(L"(value)/100 * 360");
	var_Layer->PutValueToOffsetX(L"value");
	var_Layer->PutOffsetToValue(L"value");
	var_Layer->PutRotateAngleValid(L"int(value / 360 * 100)/100 * 360");
spGauge1->GetLayers()->GetItem(long(3))->PutVisible(VARIANT_FALSE);
spGauge1->GetLayers()->GetItem(long(4))->PutVisible(VARIANT_FALSE);
EXGAUGELib::ILayerPtr var_Layer1 = spGauge1->GetLayers()->GetItem(long(0));
	var_Layer1->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer1->PutRotateType(EXGAUGELib::exRotateBilinearInterpolation);
EXGAUGELib::ILayerPtr var_Layer2 = spGauge1->GetLayers()->GetItem(long(7));
	var_Layer2->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer2->PutRotateType(EXGAUGELib::exRotateBilinearInterpolation);
spGauge1->PutValue(long(25));
spGauge1->EndUpdate();

29
How can I display an indicator

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem(long(1))->GetClip()->PutValue(spGauge1->FormatABC(L"(value + B) MIN 0 MAX 100",->GetLayers()->GetItem(long(1))->GetClip()->GetValue(),Delta,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Linear\\Indicator");
spGauge1->GetLayers()->PutCount(3);
spGauge1->GetLayers()->GetItem(long(0))->GetBackground()->GetPicture()->PutName("Background.png");
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(1));
	var_Layer->GetBackground()->GetPicture()->PutName("Green_Lights.png");
	EXGAUGELib::IClipPtr var_Clip = var_Layer->GetClip();
		EXGAUGELib::IClipRectanglePtr var_ClipRectangle = var_Clip->GetRectangle();
			var_ClipRectangle->PutHeight(L"(100 - value)/100 * height");
			var_ClipRectangle->PutInverseClip(VARIANT_TRUE);
		var_Clip->PutValue(long(50));
EXGAUGELib::ILayerPtr var_Layer1 = spGauge1->GetLayers()->GetItem(long(2));
	var_Layer1->PutVisible(VARIANT_FALSE);
	var_Layer1->GetBackground()->GetPicture()->PutName("overlay_top_layer.png");

28
How can I display a gauge

// Change event - Occurs when the layer's value is changed.
void OnChangeGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem(long(1))->PutBrightness(EXGAUGELib::exGreenChannel,spGauge1->GetValue());
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(spGauge1->FormatABC(L"A - B",spGauge1->GetValue(),Delta,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutBackColor(RGB(217,217,217));
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Guage");
spGauge1->GetLayers()->PutCount(2);
spGauge1->PutAllowSmoothChange(EXGAUGELib::exSmoothChangeless);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
	var_Layer->PutRotateCenterY(L"lheight/2 + 78");
	var_Layer->GetBackground()->GetPicture()->PutName("Guage_Background.png");
EXGAUGELib::ILayerPtr var_Layer1 = spGauge1->GetLayers()->GetItem(long(1));
	var_Layer1->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer1->GetBackground()->GetPicture()->PutName("Guage_Needle.png");
	var_Layer1->PutRotateAngleValid(L"value < 90 ? value : (value < 180 ? 90 : ( value < 270 ? 270 : value ))");
	var_Layer1->PutRotateAngleToValue(L"value >= 270 ? (value - 270)/90*50 : (value/90)*50 + 50");
	var_Layer1->PutValueToRotateAngle(L"value < 50 ? (270 + value/50*90) : (value - 50)/50 * 90");
	var_Layer1->PutRotateType(EXGAUGELib::exRotateBilinearInterpolation);
	var_Layer1->PutBrightness(EXGAUGELib::exAllChannels,0);
spGauge1->PutValue(long(78));
spGauge1->EndUpdate();

27
How can I display a clock (rotate,wolf)

// Change event - Occurs when the layer's value is changed.
void OnChangeGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem("sec")->PutValue(spGauge1->GetValue());
	spGauge1->GetLayers()->GetItem("min")->PutValue(spGauge1->GetValue());
	spGauge1->GetLayers()->GetItem("hour")->PutValue(spGauge1->GetValue());
	spGauge1->GetLayers()->GetItem("range")->GetClip()->PutValue(spGauge1->GetLayers()->GetItem("pointer")->GetValue());
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.Debug = -1
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem("pointer")->PutValue(spGauge1->FormatABC(L"A - B",spGauge1->GetLayers()->GetItem("pointer")->GetValue(),Delta,vtMissing));
}

// Timer event - Occurs when the interval elapses.
void OnTimerGauge1(long   TickCount)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(spGauge1->FormatABC(L" date(`now`)",vtMissing,vtMissing,vtMissing));
	spGauge1->GetLayers()->GetItem("pointer")->PutValue(spGauge1->FormatABC(L"sin((value/100 mod 100)/100 * 2 * asin(1)) * 100",TickCount,vtMissing,vtMissing));
	spGauge1->GetLayers()->GetItem("range")->GetClip()->PutValue(spGauge1->GetLayers()->GetItem("pointer")->GetValue());
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Clock - Wolf");
spGauge1->PutDefaultLayer(EXGAUGELib::exDefLayerRotateType,long(2));
spGauge1->GetLayers()->PutCount(9);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
	var_Layer->PutLeft(L"(width-512)/2");
	var_Layer->PutTop(L"(height-512)/2");
	var_Layer->PutHeight(L"512");
	var_Layer->PutWidth(L"512");
	var_Layer->GetBackground()->GetPicture()->PutName("Back.png");
EXGAUGELib::ILayerPtr var_Layer1 = spGauge1->GetLayers()->GetItem(long(1));
	var_Layer1->PutKey("scale");
	var_Layer1->PutDefaultOffsetX(-90);
	var_Layer1->PutDefaultOffsetY(-150);
	var_Layer1->GetBackground()->GetPicture()->PutName("Scale.png");
	var_Layer1->PutRotateCenterLayer(1);
	var_Layer1->PutRotateCenterX(L"(lwidth+181)/2");
	var_Layer1->PutRotateCenterY(L"(lheight+232)/2");
EXGAUGELib::ILayerPtr var_Layer2 = spGauge1->GetLayers()->GetItem(long(2));
	var_Layer2->PutKey("range");
	var_Layer2->PutDefaultOffsetX(spGauge1->GetLayers()->GetItem("scale")->GetDefaultOffsetX());
	var_Layer2->PutDefaultOffsetY(spGauge1->GetLayers()->GetItem("scale")->GetDefaultOffsetY());
	var_Layer2->PutRotateCenterLayer(spGauge1->GetLayers()->GetItem("scale")->GetIndex());
	EXGAUGELib::ILPicturePtr var_Picture = var_Layer2->GetBackground()->GetPicture();
		var_Picture->PutName("ScalePointerArc.png");
	var_Layer2->PutRotateCenterLayer(spGauge1->GetLayers()->GetItem("scale")->GetIndex());
	EXGAUGELib::IClipPiePtr var_ClipPie = var_Layer2->GetClip()->GetPie();
		var_ClipPie->PutRadiusX(L"100");
		var_ClipPie->PutRadiusY(L"100");
		var_ClipPie->PutCenterX(spGauge1->GetLayers()->GetItem("scale")->GetRotateCenterX());
		var_ClipPie->PutCenterY(spGauge1->GetLayers()->GetItem("scale")->GetRotateCenterY());
		var_ClipPie->PutStartAngle(L"-148");
		var_ClipPie->PutSweepAngle(L"value/100 * 300");
EXGAUGELib::ILayerPtr var_Layer3 = spGauge1->GetLayers()->GetItem(long(3));
	var_Layer3->PutKey("pointer");
	var_Layer3->PutDefaultOffsetX(spGauge1->GetLayers()->GetItem("scale")->GetDefaultOffsetX());
	var_Layer3->PutDefaultOffsetY(spGauge1->GetLayers()->GetItem("scale")->GetDefaultOffsetY());
	EXGAUGELib::ILPicturePtr var_Picture1 = var_Layer3->GetBackground()->GetPicture();
		var_Picture1->PutName("ScalePointer.png");
	var_Layer3->PutRotateCenterLayer(spGauge1->GetLayers()->GetItem("scale")->GetIndex());
	var_Layer3->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer3->PutDefaultRotateAngle(-148);
	var_Layer3->PutRotateAngleValid(L"value > 300 ? (value > 330 ? 0 : 300) : value");
	var_Layer3->PutRotateAngleToValue(L"value / 300 * 100");
	var_Layer3->PutValueToRotateAngle(L"value /100 * 300");
EXGAUGELib::ILayerPtr var_Layer4 = spGauge1->GetLayers()->GetItem(long(4));
	var_Layer4->PutKey("bolt");
	var_Layer4->PutDefaultOffsetX(spGauge1->GetLayers()->GetItem("scale")->GetDefaultOffsetX());
	var_Layer4->PutDefaultOffsetY(spGauge1->GetLayers()->GetItem("scale")->GetDefaultOffsetY());
	EXGAUGELib::ILPicturePtr var_Picture2 = var_Layer4->GetBackground()->GetPicture();
		var_Picture2->PutName("Bolt.png");
EXGAUGELib::ILayerPtr var_Layer5 = spGauge1->GetLayers()->GetItem(long(5));
	var_Layer5->PutLeft(L"(width-512)/2");
	var_Layer5->PutTop(L"(height-512)/2");
	var_Layer5->PutHeight(L"512");
	var_Layer5->PutWidth(L"512");
	var_Layer5->PutKey("sec");
	var_Layer5->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer5->PutSelectable(VARIANT_FALSE);
	var_Layer5->GetBackground()->GetPicture()->PutName("second-hand.png");
	var_Layer5->PutValueToRotateAngle(_bstr_t("((2:=(((1:=( ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) ) * 24 ))  - ") +
"floor(=:1)) * 60 )) - floor(=:2) ) * 360");
	var_Layer5->PutRotateAngleToValue(L"value / 360 / 24 / 60");
EXGAUGELib::ILayerPtr var_Layer6 = spGauge1->GetLayers()->GetItem(long(6));
	var_Layer6->PutLeft(L"(width-512)/2");
	var_Layer6->PutTop(L"(height-512)/2");
	var_Layer6->PutHeight(L"512");
	var_Layer6->PutWidth(L"512");
	var_Layer6->PutKey("min");
	var_Layer6->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer6->PutSelectable(VARIANT_FALSE);
	var_Layer6->GetBackground()->GetPicture()->PutName("Minute.png");
	var_Layer6->PutValueToRotateAngle(_bstr_t("((1:=( ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) ) * 24 ))  - floor(") +
"=:1)) * 360");
	var_Layer6->PutRotateAngleToValue(L"value / 360 / 24 / 60");
EXGAUGELib::ILayerPtr var_Layer7 = spGauge1->GetLayers()->GetItem(long(7));
	var_Layer7->PutLeft(L"(width-512)/2");
	var_Layer7->PutTop(L"(height-512)/2");
	var_Layer7->PutHeight(L"512");
	var_Layer7->PutWidth(L"512");
	var_Layer7->PutKey("hour");
	var_Layer7->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer7->GetBackground()->GetPicture()->PutName("Hour.png");
	var_Layer7->PutValueToRotateAngle(L"2 * 360 * ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) )");
	var_Layer7->PutRotateAngleToValue(L"value / 360 * 0.5");
EXGAUGELib::ILayerPtr var_Layer8 = spGauge1->GetLayers()->GetItem(long(8));
	var_Layer8->PutLeft(L"(width-512)/2");
	var_Layer8->PutTop(L"(height-512)/2");
	var_Layer8->PutHeight(L"512");
	var_Layer8->PutWidth(L"512");
	var_Layer8->PutKey("front");
	var_Layer8->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer8->GetBackground()->GetPicture()->PutName("front.png");
spGauge1->PutLayerOfValue(spGauge1->GetLayers()->GetItem("hour")->GetIndex());
spGauge1->PutValue(spGauge1->FormatABC(L"date(`now`)",vtMissing,vtMissing,vtMissing));
spGauge1->PutTimerInterval(100);

26
How can I display a clock (rotate,vintage)

// Change event - Occurs when the layer's value is changed.
void OnChangeGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem("sec")->PutValue(spGauge1->GetValue());
	spGauge1->GetLayers()->GetItem("min")->PutValue(spGauge1->GetValue());
	spGauge1->GetLayers()->GetItem("hour")->PutValue(spGauge1->GetValue());
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(spGauge1->FormatABC(L"A - 1/24/60/60*B",spGauge1->GetValue(),Delta,vtMissing));
}

// Timer event - Occurs when the interval elapses.
void OnTimerGauge1(long   TickCount)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(spGauge1->FormatABC(L"value + 1/24/60/60",spGauge1->GetValue(),vtMissing,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Clock - Vintage");
spGauge1->PutDefaultLayer(EXGAUGELib::exDefLayerRotateType,long(2));
spGauge1->GetLayers()->PutCount(5);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
	var_Layer->PutLeft(L"(width-512)/2");
	var_Layer->PutTop(L"(height-512)/2");
	var_Layer->PutHeight(L"512");
	var_Layer->PutWidth(L"512");
	var_Layer->GetBackground()->GetPicture()->PutName("Back.png");
EXGAUGELib::ILayerPtr var_Layer1 = spGauge1->GetLayers()->GetItem(long(1));
	var_Layer1->PutPosition(3);
	var_Layer1->PutLeft(L"(width-512)/2");
	var_Layer1->PutTop(L"(height-512)/2");
	var_Layer1->PutHeight(L"512");
	var_Layer1->PutWidth(L"512");
	var_Layer1->PutKey("sec");
	var_Layer1->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer1->PutSelectable(VARIANT_FALSE);
	var_Layer1->GetBackground()->GetPicture()->PutName("second-hand.png");
	var_Layer1->PutValueToRotateAngle(_bstr_t("((2:=(((1:=( ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) ) * 24 ))  - ") +
"floor(=:1)) * 60 )) - floor(=:2) ) * 360");
	var_Layer1->PutRotateAngleToValue(L"value / 360 / 24 / 60");
EXGAUGELib::ILayerPtr var_Layer2 = spGauge1->GetLayers()->GetItem(long(2));
	var_Layer2->PutLeft(L"(width-512)/2");
	var_Layer2->PutTop(L"(height-512)/2");
	var_Layer2->PutHeight(L"512");
	var_Layer2->PutWidth(L"512");
	var_Layer2->PutPosition(2);
	var_Layer2->PutKey("min");
	var_Layer2->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer2->PutSelectable(VARIANT_FALSE);
	var_Layer2->GetBackground()->GetPicture()->PutName("Minute.png");
	var_Layer2->PutValueToRotateAngle(_bstr_t("((1:=( ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) ) * 24 ))  - floor(") +
"=:1)) * 360");
	var_Layer2->PutRotateAngleToValue(L"value / 360 / 24 / 60");
EXGAUGELib::ILayerPtr var_Layer3 = spGauge1->GetLayers()->GetItem(long(3));
	var_Layer3->PutLeft(L"(width-512)/2");
	var_Layer3->PutTop(L"(height-512)/2");
	var_Layer3->PutHeight(L"512");
	var_Layer3->PutWidth(L"512");
	var_Layer3->PutPosition(1);
	var_Layer3->PutKey("hour");
	var_Layer3->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer3->GetBackground()->GetPicture()->PutName("Hour.png");
	var_Layer3->PutValueToRotateAngle(L"2 * 360 * ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) )");
	var_Layer3->PutRotateAngleToValue(L"value / 360 * 0.5");
EXGAUGELib::ILayerPtr var_Layer4 = spGauge1->GetLayers()->GetItem(long(4));
	var_Layer4->PutLeft(L"(width-512)/2");
	var_Layer4->PutTop(L"(height-512)/2");
	var_Layer4->PutHeight(L"512");
	var_Layer4->PutWidth(L"512");
	var_Layer4->PutPosition(1);
	var_Layer4->PutKey("front");
	var_Layer4->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer4->GetBackground()->GetPicture()->PutName("front.png");
	var_Layer4->PutValueToRotateAngle(L"2 * 360 * ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) )");
	var_Layer4->PutRotateAngleToValue(L"value / 360 * 0.5");
spGauge1->PutLayerOfValue(3);
spGauge1->PutValue(spGauge1->FormatABC(L"date(`now`)",vtMissing,vtMissing,vtMissing));
spGauge1->PutTimerInterval(1000);

25
How can I display a clock (rotate,london)

// Change event - Occurs when the layer's value is changed.
void OnChangeGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem("sec")->PutValue(spGauge1->GetValue());
	spGauge1->GetLayers()->GetItem("min")->PutValue(spGauge1->GetValue());
	spGauge1->GetLayers()->GetItem("hour")->PutValue(spGauge1->GetValue());
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(spGauge1->FormatABC(L"A - 1/24/60/60*B",spGauge1->GetValue(),Delta,vtMissing));
}

// Timer event - Occurs when the interval elapses.
void OnTimerGauge1(long   TickCount)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(spGauge1->FormatABC(L"value + 1/24/60/60",->GetValue(),vtMissing,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Clock - London");
spGauge1->PutDefaultLayer(EXGAUGELib::exDefLayerRotateType,long(2));
spGauge1->GetLayers()->PutCount(6);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
	var_Layer->PutLeft(L"(width-512)/2");
	var_Layer->PutTop(L"(height-512)/2");
	var_Layer->PutHeight(L"512");
	var_Layer->PutWidth(L"512");
	var_Layer->GetBackground()->GetPicture()->PutName("Back.png");
EXGAUGELib::ILayerPtr var_Layer1 = spGauge1->GetLayers()->GetItem(long(1));
	var_Layer1->PutPosition(3);
	var_Layer1->PutLeft(L"(width-512)/2");
	var_Layer1->PutTop(L"(height-512)/2");
	var_Layer1->PutHeight(L"512");
	var_Layer1->PutWidth(L"512");
	var_Layer1->PutKey("sec");
	var_Layer1->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer1->PutSelectable(VARIANT_FALSE);
	var_Layer1->PutRotateCenterLayer(1);
	var_Layer1->GetBackground()->GetPicture()->PutName("second-hand.png");
	var_Layer1->PutValueToRotateAngle(_bstr_t("((2:=(((1:=( ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) ) * 24 ))  - ") +
"floor(=:1)) * 60 )) - floor(=:2) ) * 360");
	var_Layer1->PutRotateAngleToValue(L"value / 360 / 24 / 60");
EXGAUGELib::ILayerPtr var_Layer2 = spGauge1->GetLayers()->GetItem(long(2));
	var_Layer2->PutLeft(L"(width-512)/2");
	var_Layer2->PutTop(L"(height-512)/2");
	var_Layer2->PutHeight(L"512");
	var_Layer2->PutWidth(L"512");
	var_Layer2->PutPosition(2);
	var_Layer2->PutRotateCenterLayer(2);
	var_Layer2->PutKey("min");
	var_Layer2->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer2->PutSelectable(VARIANT_FALSE);
	var_Layer2->GetBackground()->GetPicture()->PutName("Minute.png");
	var_Layer2->PutValueToRotateAngle(_bstr_t("((1:=( ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) ) * 24 ))  - floor(") +
"=:1)) * 360");
	var_Layer2->PutRotateAngleToValue(L"value / 360 / 24 / 60");
EXGAUGELib::ILayerPtr var_Layer3 = spGauge1->GetLayers()->GetItem(long(3));
	var_Layer3->PutLeft(L"(width-512)/2");
	var_Layer3->PutTop(L"(height-512)/2");
	var_Layer3->PutHeight(L"512");
	var_Layer3->PutWidth(L"512");
	var_Layer3->PutPosition(1);
	var_Layer3->PutKey("hour");
	var_Layer3->PutRotateCenterLayer(3);
	var_Layer3->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer3->GetBackground()->GetPicture()->PutName("Hour.png");
	var_Layer3->PutValueToRotateAngle(L"2 * 360 * ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) )");
	var_Layer3->PutRotateAngleToValue(L"value / 360 * 0.5");
EXGAUGELib::ILayerPtr var_Layer4 = spGauge1->GetLayers()->GetItem(long(4));
	var_Layer4->PutLeft(L"(width-512)/2");
	var_Layer4->PutTop(L"(height-512)/2");
	var_Layer4->PutHeight(L"512");
	var_Layer4->PutWidth(L"512");
	var_Layer4->PutPosition(1);
	var_Layer4->PutKey("front");
	var_Layer4->PutRotateCenterLayer(4);
	var_Layer4->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer4->GetBackground()->GetPicture()->PutName("front.png");
	var_Layer4->PutValueToRotateAngle(L"2 * 360 * ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) )");
	var_Layer4->PutRotateAngleToValue(L"value / 360 * 0.5");
EXGAUGELib::ILayerPtr var_Layer5 = spGauge1->GetLayers()->GetItem(long(5));
	var_Layer5->PutLeft(L"(width-512)/2");
	var_Layer5->PutTop(L"(height-512)/2");
	var_Layer5->PutHeight(L"512");
	var_Layer5->PutWidth(L"512");
	var_Layer5->PutKey("bolt");
	var_Layer5->PutRotateCenterLayer(5);
	var_Layer5->GetBackground()->GetPicture()->PutName("Bolt.png");
spGauge1->PutLayerOfValue(spGauge1->GetLayers()->GetItem("hour")->GetIndex());
spGauge1->PutValue(spGauge1->FormatABC(L"date(`now`)",vtMissing,vtMissing,vtMissing));
spGauge1->PutTimerInterval(1000);

24
How can I display a clock (rotate)

// Change event - Occurs when the layer's value is changed.
void OnChangeGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem("sec")->PutValue(spGauge1->GetValue());
	spGauge1->GetLayers()->GetItem("min")->PutValue(spGauge1->GetValue());
	spGauge1->GetLayers()->GetItem("hour")->PutValue(spGauge1->GetValue());
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(spGauge1->FormatABC(L"A - 1/24/60/60*B",spGauge1->GetValue(),Delta,vtMissing));
}

// Timer event - Occurs when the interval elapses.
void OnTimerGauge1(long   TickCount)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutValue(spGauge1->FormatABC(L"value + 1/24/60/60",spGauge1->GetValue(),vtMissing,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Clock");
spGauge1->PutDefaultLayer(EXGAUGELib::exDefLayerRotateType,long(2));
spGauge1->GetLayers()->PutCount(4);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
	var_Layer->GetBackground()->GetPicture()->PutName("vista_clock.png");
EXGAUGELib::ILayerPtr var_Layer1 = spGauge1->GetLayers()->GetItem(long(1));
	var_Layer1->PutPosition(3);
	var_Layer1->PutKey("sec");
	var_Layer1->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer1->PutSelectable(VARIANT_FALSE);
	var_Layer1->GetBackground()->GetPicture()->PutName("second-hand.png");
	var_Layer1->PutValueToRotateAngle(_bstr_t("((2:=(((1:=( ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) ) * 24 ))  - ") +
"floor(=:1)) * 60 )) - floor(=:2) ) * 360");
	var_Layer1->PutRotateAngleToValue(L"value / 360 / 24 / 60");
EXGAUGELib::ILayerPtr var_Layer2 = spGauge1->GetLayers()->GetItem(long(2));
	var_Layer2->PutPosition(2);
	var_Layer2->PutKey("min");
	var_Layer2->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer2->PutSelectable(VARIANT_FALSE);
	var_Layer2->GetBackground()->GetPicture()->PutName("Minute.png");
	var_Layer2->PutValueToRotateAngle(_bstr_t("((1:=( ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) ) * 24 ))  - floor(") +
"=:1)) * 360");
	var_Layer2->PutRotateAngleToValue(L"value / 360 / 24 / 60");
EXGAUGELib::ILayerPtr var_Layer3 = spGauge1->GetLayers()->GetItem(long(3));
	var_Layer3->PutPosition(1);
	var_Layer3->PutKey("hour");
	var_Layer3->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer3->GetBackground()->GetPicture()->PutName("Hour.png");
	var_Layer3->PutValueToRotateAngle(L"2 * 360 * ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) )");
	var_Layer3->PutRotateAngleToValue(L"value / 360 * 0.5");
spGauge1->PutLayerOfValue(3);
spGauge1->PutValue(spGauge1->FormatABC(L"date(`now`)",vtMissing,vtMissing,vtMissing));
spGauge1->PutTimerInterval(1000);

23
How can I clip as a triangle

// Drag event - Notifies that the user drags the layer.
void OnDragGauge1(LPDISPATCH   DragInfo)
{
	// Me.Layers(0).Clip.Value = Me.FormatABC("(value + B) MIN 0 MAX 100", Me.Layers(0).UserData, DragInfo.DeltaY )
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.Debug= 287
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
		var_Layer->PutUserData(var_Layer->GetClip()->GetValue());
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem(long(0))->GetClip()->PutValue(spGauge1->FormatABC(L"(value + B) MIN 0 MAX 100",spGauge1->GetLayers()->GetItem(long(0))->GetClip()->GetValue(),Delta,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->GetLayers()->PutCount(1);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
	var_Layer->GetBackground()->GetPicture()->PutValue("c:\\exontrol\\images\\card.png");
	EXGAUGELib::IClipPtr var_Clip = var_Layer->GetClip();
		EXGAUGELib::IClipPolygonPtr var_ClipPolygon = var_Clip->GetPolygon();
			var_ClipPolygon->PutPoints(3);
			var_ClipPolygon->PutX(0,L"0");
			var_ClipPolygon->PutY(0,L"height");
			var_ClipPolygon->PutX(1,L"width/2");
			var_ClipPolygon->PutY(1,L"value/100*width");
			var_ClipPolygon->PutX(2,L"width");
			var_ClipPolygon->PutY(2,L"height");
			var_ClipPolygon->PutInverseClip(VARIANT_TRUE);
		var_Clip->PutValue(long(50));

22
How can I limit the rotation from 0 to 360 degree, while dragging
// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.Debug = 483
	// DragInfo.RotateAngleValid = "value < 0 ? 0 : (value > 360 ? 359.999999 : value)"
}

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->Add("back");
	var_Layer->PutRotateType(EXGAUGELib::exRotateBilinearInterpolation);
	var_Layer->PutLeft(L"(width-512)/2");
	var_Layer->PutTop(L"(height-512)/2");
	var_Layer->PutHeight(L"512");
	var_Layer->PutWidth(L"512");
	EXGAUGELib::ILPicturePtr var_Picture = var_Layer->GetBackground()->GetPicture();
		var_Picture->PutValue("c:\\exontrol\\images\\card.png");
		var_Picture->PutLeft(L"(width-pwidth)/2");
		var_Picture->PutTop(L"(height-pheight)/2");
		var_Picture->PutWidth(L"pwidth");
		var_Picture->PutHeight(L"pheight");
	var_Layer->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer->PutRotateAngle(-45);

21
How can I clip as a pie

// Drag event - Notifies that the user drags the layer.
void OnDragGauge1(LPDISPATCH   DragInfo)
{
	// Me.Layers(0).Clip.Value = Me.FormatABC("value + B/360 * 100", Me.Layers(0).UserData, DragInfo.DeltaAngle )
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.Debug = -1
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
		var_Layer->PutUserData(var_Layer->GetClip()->GetValue());
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem(long(0))->GetClip()->PutValue(spGauge1->FormatABC(L"(value + B) MIN 0 MAX 100",spGauge1->GetLayers()->GetItem(long(0))->GetClip()->GetValue(),Delta,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->GetLayers()->PutCount(1);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
	var_Layer->PutLeft(L"(width-128)/2");
	var_Layer->PutTop(L"(height-128)/2");
	var_Layer->PutHeight(L"128");
	var_Layer->PutWidth(L"128");
	var_Layer->GetBackground()->GetColor()->PutValue(RGB(0,255,0));
	EXGAUGELib::IClipPtr var_Clip = var_Layer->GetClip();
		EXGAUGELib::IClipPiePtr var_ClipPie = var_Clip->GetPie();
			var_ClipPie->PutInverseClip(VARIANT_TRUE);
			var_ClipPie->PutStartAngle(L"0");
			var_ClipPie->PutSweepAngle(L"value/100*360");
		var_Clip->PutValue(long(15));

20
How can I use a picture to clip the layer

// Change event - Occurs when the layer's value is changed.
void OnChangeGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem("Clip")->GetClip()->PutValue(spGauge1->GetLayers()->GetItem("Thumb")->GetRotateAngle());
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->BeginUpdate();
spGauge1->PutPicturesPath(L"C:\\Program Files\\Exontrol\\ExGauge\\Sample\\Design\\Circular\\Knob 1");
spGauge1->PutPicturesName(L"`Layer` + int(value  + 1) + `.png`");
spGauge1->GetLayers()->PutCount(5);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(4));
	var_Layer->PutKey("Thumb");
	var_Layer->PutDefaultRotateAngle(-141);
	var_Layer->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer->PutRotateType(EXGAUGELib::exRotateBilinearInterpolation);
EXGAUGELib::ILayerPtr var_Layer1 = spGauge1->GetLayers()->GetItem(long(1));
	var_Layer1->PutKey("Clip");
	EXGAUGELib::IClipPtr var_Clip = var_Layer1->GetClip();
		var_Clip->GetPie()->PutSweepAngle(L"value");
		EXGAUGELib::IClipPicturePtr var_ClipPicture = var_Clip->GetPicture();
			var_ClipPicture->PutName(spGauge1->GetLayers()->GetItem("Clip")->GetBackground()->GetPicture()->GetName());
			var_ClipPicture->PutAlphaTo(L"128");
spGauge1->GetLayers()->GetItem("Thumb")->PutRotateAngle(90);
spGauge1->EndUpdate();

19
How do I clip a circle/ellipse

// Drag event - Notifies that the user drags the layer.
void OnDragGauge1(LPDISPATCH   DragInfo)
{
	// Me.Layers(0).Clip.Value = Me.FormatABC("(value + B) MIN 0 MAX 100", Me.Layers(0).UserData, DragInfo.DeltaX )
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.Debug= 287
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
		var_Layer->PutUserData(var_Layer->GetClip()->GetValue());
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem(long(0))->GetClip()->PutValue(spGauge1->FormatABC(L"(value + B) MIN 0 MAX 100",spGauge1->GetLayers()->GetItem(long(0))->GetClip()->GetValue(),Delta,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->GetLayers()->PutCount(1);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
	var_Layer->PutLeft(L"(width-128)/2");
	var_Layer->PutTop(L"(height-128)/2");
	var_Layer->PutHeight(L"128");
	var_Layer->PutWidth(L"128");
	var_Layer->GetBackground()->GetColor()->PutValue(RGB(0,255,0));
	EXGAUGELib::IClipPtr var_Clip = var_Layer->GetClip();
		var_Clip->GetEllipse()->PutRadiusX(L"value/100 * width");
		var_Clip->PutValue(long(25));

18
What InverseClip does

// Drag event - Notifies that the user drags the layer.
void OnDragGauge1(LPDISPATCH   DragInfo)
{
	// Me.Layers(0).Clip.Value = Me.FormatABC("(value + B) MIN 0 MAX 100", Me.Layers(0).UserData, DragInfo.DeltaX )
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.Debug= 287
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
		var_Layer->PutUserData(var_Layer->GetClip()->GetValue());
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem(long(0))->GetClip()->PutValue(spGauge1->FormatABC(L"(value + B) MIN 0 MAX 100",spGauge1->GetLayers()->GetItem(long(0))->GetClip()->GetValue(),Delta,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->GetLayers()->PutCount(1);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
	var_Layer->PutLeft(L"(width-128)/2");
	var_Layer->PutTop(L"(height-128)/2");
	var_Layer->PutHeight(L"128");
	var_Layer->PutWidth(L"128");
	var_Layer->GetBackground()->GetColor()->PutValue(RGB(0,255,0));
	EXGAUGELib::IClipPtr var_Clip = var_Layer->GetClip();
		EXGAUGELib::IClipRoundRectanglePtr var_ClipRoundRectangle = var_Clip->GetRoundRectangle();
			var_ClipRoundRectangle->PutWidth(L"value/100 * width");
			var_ClipRoundRectangle->PutRoundRadiusX(L"width/8");
			var_ClipRoundRectangle->PutRoundRadiusY(L"height/8");
			var_ClipRoundRectangle->PutInverseClip(VARIANT_TRUE);
		var_Clip->PutValue(long(50));

17
How do I clip as rectangle (round), from left to right

// Drag event - Notifies that the user drags the layer.
void OnDragGauge1(LPDISPATCH   DragInfo)
{
	// Me.Layers(0).Clip.Value = Me.FormatABC("(value + B) MIN 0 MAX 100", Me.Layers(0).UserData, DragInfo.DeltaX )
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.Debug= 287
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
		var_Layer->PutUserData(var_Layer->GetClip()->GetValue());
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem(long(0))->GetClip()->PutValue(spGauge1->FormatABC(L"(value + B) MIN 0 MAX 100",spGauge1->GetLayers()->GetItem(long(0))->GetClip()->GetValue(),Delta,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->GetLayers()->PutCount(1);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
	var_Layer->PutLeft(L"(width-128)/2");
	var_Layer->PutTop(L"(height-128)/2");
	var_Layer->PutHeight(L"128");
	var_Layer->PutWidth(L"128");
	var_Layer->GetBackground()->GetColor()->PutValue(RGB(0,255,0));
	EXGAUGELib::IClipPtr var_Clip = var_Layer->GetClip();
		EXGAUGELib::IClipRoundRectanglePtr var_ClipRoundRectangle = var_Clip->GetRoundRectangle();
			var_ClipRoundRectangle->PutWidth(L"value/100 * width");
			var_ClipRoundRectangle->PutRoundRadiusX(L"width/8");
			var_ClipRoundRectangle->PutRoundRadiusY(L"height/8");
		var_Clip->PutValue(long(50));

16
How do I clip as rectangle, from bottom to top

// Drag event - Notifies that the user drags the layer.
void OnDragGauge1(LPDISPATCH   DragInfo)
{
	// Me.Layers(0).Clip.Value = Me.FormatABC("(value + B) MIN 0 MAX 100", Me.Layers(0).UserData, DragInfo.DeltaY )
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.Debug= 287
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
		var_Layer->PutUserData(var_Layer->GetClip()->GetValue());
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem(long(0))->GetClip()->PutValue(spGauge1->FormatABC(L"(value + B) MIN 0 MAX 100",spGauge1->GetLayers()->GetItem(long(0))->GetClip()->GetValue(),Delta,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->GetLayers()->PutCount(1);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
	var_Layer->GetBackground()->GetPicture()->PutValue("c:\\exontrol\\images\\card.png");
	EXGAUGELib::IClipPtr var_Clip = var_Layer->GetClip();
		EXGAUGELib::IClipRectanglePtr var_ClipRectangle = var_Clip->GetRectangle();
			var_ClipRectangle->PutHeight(L"value/100 * height");
			var_ClipRectangle->PutInverseClip(VARIANT_TRUE);
		var_Clip->PutValue(long(50));

15
How do I clip as rectangle, from top to bottom

// Drag event - Notifies that the user drags the layer.
void OnDragGauge1(LPDISPATCH   DragInfo)
{
	// Me.Layers(0).Clip.Value = Me.FormatABC("(value + B) MIN 0 MAX 100", Me.Layers(0).UserData, DragInfo.DeltaY )
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.Debug= 287
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
		var_Layer->PutUserData(var_Layer->GetClip()->GetValue());
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem(long(0))->GetClip()->PutValue(spGauge1->FormatABC(L"(value + B) MIN 0 MAX 100",spGauge1->GetLayers()->GetItem(long(0))->GetClip()->GetValue(),Delta,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->GetLayers()->PutCount(1);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
	var_Layer->GetBackground()->GetPicture()->PutValue("c:\\exontrol\\images\\card.png");
	EXGAUGELib::IClipPtr var_Clip = var_Layer->GetClip();
		var_Clip->GetRectangle()->PutHeight(L"value/100 * height");
		var_Clip->PutValue(long(50));

14
How do I clip as rectangle, from right to left

// Drag event - Notifies that the user drags the layer.
void OnDragGauge1(LPDISPATCH   DragInfo)
{
	// Me.Layers(0).Clip.Value = Me.FormatABC("(value + B) MIN 0 MAX 100", Me.Layers(0).UserData, DragInfo.DeltaX )
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.Debug= 287
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
		var_Layer->PutUserData(var_Layer->GetClip()->GetValue());
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem(long(0))->GetClip()->PutValue(spGauge1->FormatABC(L"(value + B) MIN 0 MAX 100",spGauge1->GetLayers()->GetItem(long(0))->GetClip()->GetValue(),Delta,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->GetLayers()->PutCount(1);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
	var_Layer->GetBackground()->GetPicture()->PutValue("c:\\exontrol\\images\\card.png");
	EXGAUGELib::IClipPtr var_Clip = var_Layer->GetClip();
		EXGAUGELib::IClipRectanglePtr var_ClipRectangle = var_Clip->GetRectangle();
			var_ClipRectangle->PutWidth(L"value/100 * width");
			var_ClipRectangle->PutInverseClip(VARIANT_TRUE);
		var_Clip->PutValue(long(50));

13
How do I clip as rectangle, from left to right

// Drag event - Notifies that the user drags the layer.
void OnDragGauge1(LPDISPATCH   DragInfo)
{
	// Me.Layers(0).Clip.Value = Me.FormatABC("(value + B) MIN 0 MAX 100", Me.Layers(0).UserData, DragInfo.DeltaX )
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.Debug= 287
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
		var_Layer->PutUserData(var_Layer->GetClip()->GetValue());
}

// MouseWheel event - Occurs when the mouse wheel moves while the control has focus
void OnMouseWheelGauge1(long   Delta)
{
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->GetLayers()->GetItem(long(0))->GetClip()->PutValue(spGauge1->FormatABC(L"(value + B) MIN 0 MAX 100",spGauge1->GetLayers()->GetItem(long(0))->GetClip()->GetValue(),Delta,vtMissing));
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->GetLayers()->PutCount(1);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
	var_Layer->GetBackground()->GetPicture()->PutValue("c:\\exontrol\\images\\card.png");
	EXGAUGELib::IClipPtr var_Clip = var_Layer->GetClip();
		var_Clip->GetRectangle()->PutWidth(L"value/100 * width");
		var_Clip->PutValue(long(50));

12
How can I associate a value to rotation angle

// Change event - Occurs when the layer's value is changed.
void OnChangeGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutCaption(EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"`Value: <b>` + (value format ``) ",spGauge1->GetLayers()->GetItem(long(0))->GetValue(),vtMissing,vtMissing));
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.Debug = 483
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->Add("back");
	var_Layer->PutRotateType(EXGAUGELib::exRotateBilinearInterpolation);
	var_Layer->PutLeft(L"(width-512)/2");
	var_Layer->PutTop(L"(height-512)/2");
	var_Layer->PutHeight(L"512");
	var_Layer->PutWidth(L"512");
	EXGAUGELib::ILPicturePtr var_Picture = var_Layer->GetBackground()->GetPicture();
		var_Picture->PutValue("c:\\exontrol\\images\\card.png");
		var_Picture->PutLeft(L"(width-pwidth)/2");
		var_Picture->PutTop(L"(height-pheight)/2");
		var_Picture->PutWidth(L"pwidth");
		var_Picture->PutHeight(L"pheight");
	var_Layer->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer->PutDefaultRotateAngle(45);
	var_Layer->PutRotateCenterY(L"lheight/2 + 32");
	var_Layer->PutRotateCenterX(L"lwidth/2 + 32");
	var_Layer->PutRotateAngleToValue(L"value/360 * 100");
	var_Layer->PutValueToRotateAngle(L"value / 100 * 360");
	var_Layer->PutValue(long(50));

11
How can I associate a value to vertical offset

// Change event - Occurs when the layer's value is changed.
void OnChangeGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutCaption(EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"`Value: <b>` + (value format ``)",spGauge1->GetLayers()->GetItem(long(0))->GetValue(),vtMissing,vtMissing));
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.Debug = 287
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->Add("back");
	var_Layer->GetBackground()->GetPicture()->PutValue("c:\\exontrol\\images\\card.png");
	var_Layer->PutOnDrag(EXGAUGELib::exDoMove);
	var_Layer->PutDefaultOffsetY(-100);
	var_Layer->PutOffsetYValid(L"value MIN 0 MAX 200");
	var_Layer->PutOffsetXValid(L"0");
	var_Layer->PutOffsetToValue(L"offsety /200 * 100");
	var_Layer->PutValueToOffsetY(L"value / 100 * 200");
	var_Layer->PutValue(long(50));

10
How can I associate a value to horizontal offset

// Change event - Occurs when the layer's value is changed.
void OnChangeGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutCaption(EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"`Value: <b>` + (value format ``)",spGauge1->GetLayers()->GetItem(long(0))->GetValue(),vtMissing,vtMissing));
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.Debug = 287
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->Add("back");
	var_Layer->GetBackground()->GetPicture()->PutValue("c:\\exontrol\\images\\card.png");
	var_Layer->PutOnDrag(EXGAUGELib::exDoMove);
	var_Layer->PutDefaultOffsetX(-100);
	var_Layer->PutOffsetXValid(L"value MIN 0 MAX 200");
	var_Layer->PutOffsetYValid(L"0");
	var_Layer->PutOffsetToValue(L"offsetx /200 * 100");
	var_Layer->PutValueToOffsetX(L"value / 100 * 200");
	var_Layer->PutValue(long(50));

9
How can I display the current angle

// Change event - Occurs when the layer's value is changed.
void OnChangeGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutCaption(EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"`Angle: <b>` + (value format ``) + `°`",spGauge1->GetLayers()->GetItem(long(0))->GetRotateAngle(),vtMissing,vtMissing));
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.Debug = 483
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->Add("back");
	var_Layer->PutRotateType(EXGAUGELib::exRotateBilinearInterpolation);
	var_Layer->PutLeft(L"(width-512)/2");
	var_Layer->PutTop(L"(height-512)/2");
	var_Layer->PutHeight(L"512");
	var_Layer->PutWidth(L"512");
	EXGAUGELib::ILPicturePtr var_Picture = var_Layer->GetBackground()->GetPicture();
		var_Picture->PutValue("c:\\exontrol\\images\\card.png");
		var_Picture->PutLeft(L"(width-pwidth)/2");
		var_Picture->PutTop(L"(height-pheight)/2");
		var_Picture->PutWidth(L"pwidth");
		var_Picture->PutHeight(L"pheight");
	var_Layer->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer->PutRotateAngleValid(L"(value > 180 ? value - 360 : value)  MIN 15 MAX 65");

8
How can I limit the rotation angle

// Change event - Occurs when the layer's value is changed.
void OnChangeGauge1(long   Layer)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'
		#import <ExGauge.dll>
		using namespace EXGAUGELib;
	*/
	EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
	spGauge1->PutCaption(EXGAUGELib::exLayerCaption,spGauge1->FormatABC(L"`Angle: <b>` + (value format ``) + `°`",spGauge1->GetLayers()->GetItem(long(0))->GetRotateAngle(),vtMissing,vtMissing));
}

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.Debug = 483
}

EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->Add("back");
	var_Layer->PutRotateType(EXGAUGELib::exRotateBilinearInterpolation);
	var_Layer->PutLeft(L"(width-512)/2");
	var_Layer->PutTop(L"(height-512)/2");
	var_Layer->PutHeight(L"512");
	var_Layer->PutWidth(L"512");
	EXGAUGELib::ILPicturePtr var_Picture = var_Layer->GetBackground()->GetPicture();
		var_Picture->PutValue("c:\\exontrol\\images\\card.png");
		var_Picture->PutLeft(L"(width-pwidth)/2");
		var_Picture->PutTop(L"(height-pheight)/2");
		var_Picture->PutWidth(L"pwidth");
		var_Picture->PutHeight(L"pheight");
	var_Layer->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer->PutRotateAngleValid(L"(value > 180 ? value - 360 : value)  MIN 15 MAX 65");

7
Can I specify a different center while rotating

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.Debug = 483
}

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->Add("back");
	var_Layer->PutRotateType(EXGAUGELib::exRotateBilinearInterpolation);
	var_Layer->PutLeft(L"(width-512)/2");
	var_Layer->PutTop(L"(height-512)/2");
	var_Layer->PutHeight(L"512");
	var_Layer->PutWidth(L"512");
	EXGAUGELib::ILPicturePtr var_Picture = var_Layer->GetBackground()->GetPicture();
		var_Picture->PutValue("c:\\exontrol\\images\\card.png");
		var_Picture->PutLeft(L"(width-pwidth)/2");
		var_Picture->PutTop(L"(height-pheight)/2");
		var_Picture->PutWidth(L"pwidth");
		var_Picture->PutHeight(L"pheight");
	var_Layer->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer->PutRotateAngle(-45);
	var_Layer->PutRotateCenterY(L"lheight/2 + 32");
	var_Layer->PutRotateCenterX(L"lwidth/2 + 32");

6
How can I rotate a layer, without cutting off the picture

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.Debug = 483
}

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->Add("back");
	var_Layer->PutLeft(L"(width-512)/2");
	var_Layer->PutTop(L"(height-512)/2");
	var_Layer->PutHeight(L"512");
	var_Layer->PutWidth(L"512");
	EXGAUGELib::ILPicturePtr var_Picture = var_Layer->GetBackground()->GetPicture();
		var_Picture->PutValue("c:\\exontrol\\images\\card.png");
		var_Picture->PutLeft(L"(width-pwidth)/2");
		var_Picture->PutTop(L"(height-pheight)/2");
		var_Picture->PutWidth(L"pwidth");
		var_Picture->PutHeight(L"pheight");
	var_Layer->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer->PutRotateAngle(-45);

5
How can I rotate a layer

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.Debug = 483
}

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->Add("back");
	EXGAUGELib::ILPicturePtr var_Picture = var_Layer->GetBackground()->GetPicture();
		var_Picture->PutValue("c:\\exontrol\\images\\card.png");
		var_Picture->PutWidth(L"pwidth");
		var_Picture->PutHeight(L"pheight");
	var_Layer->PutOnDrag(EXGAUGELib::exDoRotate);
	var_Layer->PutRotateAngle(45);

4
Is there any way to debug the layer while moving

// DragStart event - Occurs once the user starts dragging a layer.
void OnDragStartGauge1(LPDISPATCH   DragInfo,BOOL FAR*   Cancel)
{
	// DragInfo.Debug = 287
}

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

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->Add("back");
	var_Layer->GetBackground()->GetPicture()->PutValue("c:\\exontrol\\images\\card.png");
	var_Layer->PutOnDrag(EXGAUGELib::exDoMove);

3
How do I specify where to move the layer, while dragging
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->Add("back");
	var_Layer->GetBackground()->GetPicture()->PutValue("c:\\exontrol\\images\\card.png");
	var_Layer->PutOnDrag(EXGAUGELib::exDoMove);
	var_Layer->PutOffsetXValid(L"int(value / 64) * 64");
	var_Layer->PutOffsetYValid(L"int(value / 64) * 64");

2
How can I add layers to the control
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->Add("back");
	var_Layer->GetBackground()->GetPicture()->PutValue("c:\\exontrol\\images\\card.png");
	var_Layer->PutOnDrag(EXGAUGELib::exDoMove);

1
How can I add layers to the control
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXGAUGELib' for the library: 'ExGauge 1.0 Control Library'

	#import <ExGauge.dll>
	using namespace EXGAUGELib;
*/
EXGAUGELib::IGaugePtr spGauge1 = GetDlgItem(IDC_GAUGE1)->GetControlUnknown();
spGauge1->GetLayers()->PutCount(1);
EXGAUGELib::ILayerPtr var_Layer = spGauge1->GetLayers()->GetItem(long(0));
	var_Layer->GetBackground()->GetPicture()->PutValue("c:\\exontrol\\images\\card.png");
	var_Layer->PutOnDrag(EXGAUGELib::exDoMove);