Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/03/2006, 15:35
Avatar de Ultra Putrefactus
Ultra Putrefactus
 
Fecha de Ingreso: marzo-2006
Mensajes: 11
Antigüedad: 19 años, 1 mes
Puntos: 0
EL problema es que el al hacer click sobre el flexgrid con el botón derecho este no selecciona el item. Lo que tienes que hacer es forzar la selección del item cada vez que se haga un click derecho sobre la grilla.

En un modulo:

Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Public Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)

Public Const MOUSEEVENTF_MOVE = &H1 ' mouse move
Public Const MOUSEEVENTF_LEFTDOWN = &H2 ' left button down
Public Const MOUSEEVENTF_LEFTUP = &H4 ' left button up
Public Const MOUSEEVENTF_RIGHTDOWN = &H8 ' right button down
Public Const MOUSEEVENTF_RIGHTUP = &H10 ' right button up
Public Const MOUSEEVENTF_MIDDLEDOWN = &H20 ' middle button down
Public Const MOUSEEVENTF_MIDDLEUP = &H40 ' middle button up
Public Const MOUSEEVENTF_WHEEL = &H800 ' wheel button rolled
Public Const MOUSEEVENTF_ABSOLUTE = &H8000 ' absolute move

Public Type POINTAPI
x As Long
y As Long
End Type

En el form:

private Mdown as boolean' a nivel general en el formulario

Private Sub MSHFlexGrid2_MouseDown(button As Integer, Shift As Integer, x As Single, y As Single)
Dim pt As POINTAPI

GetCursorPos ptcur_x = pt.x * 65535 / ScaleX(Screen.Width, vbTwips, vbPixels)
cur_y = pt.y * 65535 / ScaleY(Screen.Height, vbTwips, vbPixels)

If Button = 2 Then

mouse_event _
MOUSEEVENTF_ABSOLUTE + _
MOUSEEVENTF_MOVE + _
MOUSEEVENTF_LEFTDOWN + _
MOUSEEVENTF_LEFTUP, _
cur_x, cur_y, 0, 0

Mdown = True


End If
End Sub
Private Sub MSHFlexGrid2_Click()

If Mdown Then

PopupMenu herramientas
End If
End Sub

En el evento click de la opción de menu:

Private Sub TerminarViaje_Click

MSHFlexGrid2.col=0
Form2.Text1= MSHFlexGrid2.text
Form2.Show
End Sub