event DblClick (Shift as Integer, X as OLE_XPOS_PIXELS, Y as OLE_YPOS_PIXELS)

Occurs when the user dblclk the left mouse button over an object.

 TypeDescription 
   Shift as Integer An integer that corresponds to the state of the SHIFT, CTRL, and ALT keys.  
   X as OLE_XPOS_PIXELS A single that specifies the current X location of the mouse pointer. The x values 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 values is always expressed in container coordinates.  

The DblClick event is fired when the user dbl clicks on the control. Use the DblClick event to notify your application that a cell has been double-clicked. Use the ItemFromPoint property to determine the cell or the item over the cursor. Use the CloseOnDblClk property to specify whether the drop down portion of the control is hidden when the user double clicks an item. Use the Style property to specify whether the control shows a drop down portion.

The following VB sample prints the caption of the cell that's dbl clicked:

Private Sub ComboBox1_DblClick(Shift As Integer, X As Single, Y As Single)
    With ComboBox1
        Dim i As HITEM, c As Long, hit As EXCOMBOBOXLibCtl.HitTestInfoEnum
        i = .ItemFromPoint(X / Screen.TwipsPerPixelX, Y / Screen.TwipsPerPixelY, c, hit)
        If (i >= 0) Then
            Debug.Print .Items.CellCaption(i, c) & " HT = " & hit
        End If
    End With
End Sub

The following C++ sample prints the caption of the cell that's dbl clicked:

void OnDblClickCombobox1(short Shift, long X, long Y) 
{
	long c = 0, h = 0, i = m_combobox.GetItemFromPoint( X, Y, &c, &h );
	if ( i != 0 )
	{
		CString strOutput;
		strOutput.Format( "'%s' HT= %i\r\n", V2S( &m_combobox.GetItems().GetCellCaption(COleVariant(i), COleVariant(c) ) ), h );
		OutputDebugString( strOutput );
	}
}

where the V2S function converts a VARIANT to a string expression,

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;
}

The following VB.NET sample prints the caption of the cell that's dbl clicked:

Private Sub AxComboBox1_DblClick(ByVal sender As Object, ByVal e As AxEXCOMBOBOXLib._IComboBoxEvents_DblClickEvent) Handles AxComboBox1.DblClick
    With AxComboBox1
        Dim i As Integer, c As Integer, hit As EXCOMBOBOXLib.HitTestInfoEnum
        i = .get_ItemFromPoint(e.x, e.y, c, hit)
        If (i >= 0) Then
            Debug.WriteLine(.Items.CellCaption(i, c) & " HT = " & hit)
        End If
    End With
End Sub

The following C# sample prints the caption of the cell that's dbl clicked:

private void axComboBox1_DblClick(object sender, AxEXCOMBOBOXLib._IComboBoxEvents_DblClickEvent e)
{
	EXCOMBOBOXLib.HitTestInfoEnum h;
	int c = 0, i = axComboBox1.get_ItemFromPoint(e.x, e.y, out c, out h);
	if (i != 0)
		System.Diagnostics.Debug.WriteLine(axComboBox1.Items.get_CellCaption(i,c).ToString() + " HT = " + h.ToString() );
}

The following VFP sample prints the caption of the cell that's dbl clicked:

*** ActiveX Control Event ***
LPARAMETERS shift, x, y

With thisform.ComboBox1
        local c, hit
        c = 0
        hit = 0
        .Items.DefaultItem = .ItemFromPoint(X , Y, @c, @hit)
        If (.Items.DefaultItem >= 0) Then
            wait window nowait .Items.CellCaption(0, c) + " HT = " + str(hit)
        EndIf
EndWith

 


Send comments on this topic.
© 1999-2008 Exontrol Inc, Software. All rights reserved.