Type | Description | |||
Button as Integer | An integer that identifies the button that was pressed to cause the event | |||
Shift as Integer | An integer that corresponds to the state of the SHIFT, CTRL, and ALT keys when the button specified in the button argument is pressed or released. | |||
X as OLE_XPOS_PIXELS | A single that specifies the current X location of the mouse pointer. The X value is always expressed in container coordinates. | |||
Y as OLE_YPOS_PIXELS | A single that specifies the current Y location of the mouse pointer. The Y value is always expressed in container coordinates. |
Use a MouseDown or MouseUp event procedure to specify actions that will occur when a mouse button is pressed or released. Unlike the Click and DblClick events, MouseDown and MouseUp events lets you distinguish between the left, right, and middle mouse buttons. You can also write code for mouse-keyboard combinations that use the SHIFT, CTRL, and ALT keyboard modifiers. Use the AnchorFromPoint property to retrieve the identifier of the anchor element from the point. The AnchorClick event notifies your application that the user clicks an <a> anchor element.
Syntax for MouseDown event, /NET version, on:
private void MouseDownEvent(object sender,short Button,short Shift,int X,int Y) { } Private Sub MouseDownEvent(ByVal sender As System.Object,ByVal Button As Short,ByVal Shift As Short,ByVal X As Integer,ByVal Y As Integer) Handles MouseDownEvent End Sub |
private void MouseDownEvent(object sender, AxEXGRAPHLib._IGraphEvents_MouseDownEvent e) { } void OnMouseDown(short Button,short Shift,long X,long Y) { } void __fastcall MouseDown(TObject *Sender,short Button,short Shift,int X,int Y) { } procedure MouseDown(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer); begin end; procedure MouseDownEvent(sender: System.Object; e: AxEXGRAPHLib._IGraphEvents_MouseDownEvent); begin end; begin event MouseDown(integer Button,integer Shift,long X,long Y) end event MouseDown Private Sub MouseDownEvent(ByVal sender As System.Object, ByVal e As AxEXGRAPHLib._IGraphEvents_MouseDownEvent) Handles MouseDownEvent End Sub Private Sub MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single) End Sub Private Sub MouseDown(ByVal Button As Integer,ByVal Shift As Integer,ByVal X As Long,ByVal Y As Long) End Sub LPARAMETERS Button,Shift,X,Y PROCEDURE OnMouseDown(oGraph,Button,Shift,X,Y) RETURN |
<SCRIPT EVENT="MouseDown(Button,Shift,X,Y)" LANGUAGE="JScript"> </SCRIPT> <SCRIPT LANGUAGE="VBScript"> Function MouseDown(Button,Shift,X,Y) End Function </SCRIPT> Procedure OnComMouseDown Short llButton Short llShift OLE_XPOS_PIXELS llX OLE_YPOS_PIXELS llY Forward Send OnComMouseDown llButton llShift llX llY End_Procedure METHOD OCX_MouseDown(Button,Shift,X,Y) CLASS MainDialog RETURN NIL void onEvent_MouseDown(int _Button,int _Shift,int _X,int _Y) { } function MouseDown as v (Button as N,Shift as N,X as OLE::Exontrol.Graph.1::OLE_XPOS_PIXELS,Y as OLE::Exontrol.Graph.1::OLE_YPOS_PIXELS) end function function nativeObject_MouseDown(Button,Shift,X,Y) return |
The following VB sample prints the cell's caption that's been clicked:
Private Sub Graph1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) ' Converts the container coordinates to client coordinates X = X / Screen.TwipsPerPixelX Y = Y / Screen.TwipsPerPixelY Dim h As HITEM Dim c As Long Dim hit As EXGRAPHLibCtl.HitTestInfoEnum ' Gets the item from (X,Y) h = Graph1.ItemFromPoint(X, Y, c, hit) If Not (h = 0) Then Debug.Print Graph1.Items.CellValue(h, c) & " HT = " & hit End If End Sub
If you need to add a context menu based on the item you can use the MouseUp event, like in the following VB sample ( the sample uses the Exontrol's ExPopupMenu Component ):
Private Sub Graph1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If (Button = 2) Then ' Converts the container coordinates to client coordinates X = X / Screen.TwipsPerPixelX Y = Y / Screen.TwipsPerPixelY Dim h As HITEM Dim c As Long, hit as Long ' Gets the item from (X,Y) h = Graph1.ItemFromPoint(X, Y, c, hit) If Not (h = 0) Then Dim i As Long PopupMenu1.Items.Add Graph1.Items.CellValue(h, c) i = PopupMenu1.ShowAtCursor End If End If End Sub
The following C++ sample displays the caption of the cell being clicked:
#include "Items.h" static CString V2S( VARIANT* pv, LPCTSTR szDefault = _T("") ) { if ( pv ) { if ( pv->vt == VT_ERROR ) return szDefault; COleVariant vt; vt.ChangeType( VT_BSTR, pv ); return V_BSTR( &vt ); } return szDefault; } void OnMouseDownGraph1(short Button, short Shift, long X, long Y) { long c = 0, hit = 0, hItem = m_graph.GetItemFromPoint( X, Y, &c, &hit ); if ( ( hItem != 0 ) || ( c != 0 ) ) { CItems items = m_graph.GetItems(); COleVariant vtItem( hItem ), vtColumn( c ); CString strCaption = V2S( &items.GetCellValue( vtItem, vtColumn ) ), strOutput; strOutput.Format( "Cell: '%s', Hit = %08X\n", strCaption, hit ); OutputDebugString( strOutput ); } }
The following VB.NET sample displays the caption from the cell being clicked:
Private Sub AxGraph1_MouseDownEvent(ByVal sender As Object, ByVal e As AxEXGRAPHLib._IGraphEvents_MouseDownEvent) Handles AxGraph1.MouseDownEvent With AxGraph1 Dim i As Integer, c As Integer, hit As EXGRAPHLib.HitTestInfoEnum i = .get_ItemFromPoint(e.x, e.y, c, hit) If (Not (i = 0) Or Not (c = 0)) Then Debug.WriteLine("Cell: " & .Items.CellValue(i, c) & " Hit: " & hit.ToString()) End If End With End Sub
The following C# sample displays the caption from the cell being clicked:
private void axGraph1_MouseDownEvent(object sender, AxEXGRAPHLib._IGraphEvents_MouseDownEvent e) { int c = 0; EXGRAPHLib.HitTestInfoEnum hit; int i = axGraph1.get_ItemFromPoint( e.x, e.y, out c,out hit ); if ( ( i != 0 ) || ( c != 0 ) ) { string s = axGraph1.Items.get_CellValue( i,c ).ToString(); s = "Cell: " + s + ", Hit: " + hit.ToString(); System.Diagnostics.Debug.WriteLine( s ); } }
The following VFP sample displays the caption from the cell being clicked:
*** ActiveX Control Event *** LPARAMETERS button, shift, x, y local c, hit c = 0 hit = 0 with thisform.Graph1 .Items.DefaultItem = .ItemFromPoint( x, y, @c, @hit ) if ( .Items.DefaultItem <> 0 ) or ( c <> 0 ) wait window nowait .Items.CellValue( 0, c ) + " " + Str( hit ) endif endwith