Hi,
here is some code how which uses these VSTA Events (ButtonUp & ButtonDown), the other events are easy to implement.
The code writes CEL messages with the element name when pressing/releasing zenon elements via left/right mouse button.
public partial class ThisProject
{
zenOn.IDynPictures zDynPictureEvents;
private void ThisProject_Startup(object sender, EventArgs e)
{
this.Project.Active += new zenOn.ActiveEventHandler(Project_Active);
this.Project.Inactive += new zenOn.InactiveEventHandler(Project_Inactive);
}
void Project_Active()
{
zDynPictureEvents = this.DynPictures();
zDynPictureEvents.ElementLeftButtonDown += new zenOn.ElementLeftButtonDownEventHandler(zDynPictureEvents_ElementLeftButtonDown);
zDynPictureEvents.ElementLeftButtonUp += new zenOn.ElementLeftButtonUpEventHandler(zDynPictureEvents_ElementLeftButtonUp);
zDynPictureEvents.ElementRightButtonUp += new zenOn.ElementRightButtonUpEventHandler(zDynPictureEvents_ElementRightButtonUp);
zDynPictureEvents.ElementRightButtonDown += new zenOn.ElementRightButtonDownEventHandler(zDynPictureEvents_ElementRightButtonDown);
}
void zDynPictureEvents_ElementLeftButtonUp(zenOn.IDynPicture obDynPicture, zenOn.IElement obElement, int lPosX, int lPosY, int lButton)
{
this.Cel().WriteCelString("LeftButtonUp - " + obElement.Name);
}
void zDynPictureEvents_ElementLeftButtonDown(zenOn.IDynPicture obDynPicture, zenOn.IElement obElement, int lPosX, int lPosY, int lButton)
{
this.Cel().WriteCelString("LeftButtonDown - " + obElement.Name);
}
void zDynPictureEvents_ElementRightButtonUp(zenOn.IDynPicture obDynPicture, zenOn.IElement obElement, int lPosX, int lPosY, int lButton)
{
this.Cel().WriteCelString("RightButtonUp - " + obElement.Name);
}
void zDynPictureEvents_ElementRightButtonDown(zenOn.IDynPicture obDynPicture, zenOn.IElement obElement, int lPosX, int lPosY, int lButton)
{
this.Cel().WriteCelString("RightButtonDown - " + obElement.Name);
}
void Project_Inactive()
{
zDynPictureEvents.ElementLeftButtonUp -= new zenOn.ElementLeftButtonUpEventHandler(zDynPictureEvents_ElementLeftButtonUp);
zDynPictureEvents.ElementLeftButtonDown -= new zenOn.ElementLeftButtonDownEventHandler(zDynPictureEvents_ElementLeftButtonDown);
zDynPictureEvents.ElementRightButtonUp -= new zenOn.ElementRightButtonUpEventHandler(zDynPictureEvents_ElementRightButtonUp);
zDynPictureEvents.ElementRightButtonDown -= new zenOn.ElementRightButtonDownEventHandler(zDynPictureEvents_ElementRightButtonDown);
zDynPictureEvents = null;
}
private void ThisProject_Shutdown(object sender, EventArgs e)
{
this.Project.Active -= new zenOn.ActiveEventHandler(Project_Active);
this.Project.Inactive -= new zenOn.InactiveEventHandler(Project_Inactive);
}
#region VSTA generated code
private void InternalStartup()
{
this.Startup += new System.EventHandler(ThisProject_Startup);
this.Shutdown += new System.EventHandler(ThisProject_Shutdown);
}
#endregion
}
Regards,
Bernhard