Autor Tema: Hook en menu Mensaje click derecho  (Leído 2942 veces)

0 Usuarios y 1 Visitante están viendo este tema.

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Hook en menu Mensaje click derecho
« en: Noviembre 21, 2009, 12:08:08 am »
Hola, la verdad nunca pregunto, pero esta vez afloje  :D, porque he buscado y no he visto algo que me convenza.

en resumen pueda ser que tenga varias preguntas para hacer, la idea es que estoy creando el menu de un formulario en tiempo de ejecucion y esta en un treeview originalmente.lo creo con las api's segun sus niveles ahi no tengo problema.

primera pregunta: tengo un codigo que crea el menu, pero se debe agregar un bucle mas para cada nivel, o sea si tengo 4 niveles son 4 bucles, estaria bueno que no dependa de eso y si son n niveles lo haga igual, estaba pensando en algo recursivo, pero tendria que guardar en algun lado los id de los menues para saber donde agregarlos ¿o no?.

el segundo tema es que ya creado el menu, le estoy haciendo un hook obviamente para saber cuando se selecciona un item del mismo, el tema que el hook anda, pero el mensaje cuando hace click izquierdo con el mouse no lo puedo encontrar, esta el del derecho, pero no este, es exactamente cuando haces click izquierdo con el mouse, ya vi WM_MENUSELECT..pero eso es para cuando lo seleccionas con el mouse ¿existe ese mensaje?, ya probe con ventanas y el SPY pero no hay nada.el ejemplo en el que me baso exactamente es:

Subclasificar un Menú

o si existe algun ejemplo mejor y si se pudiera hacer debug, porque el ejemplo anterior no podes hacer el debug linea por linea porquense te traba todo el IDE, como comunmente pasa con estos Hook.otra cosa es donde se podria guardar un tag al menu cuando se crea, porque necesito saber a cual le hice click y ejecutar una determinada accion segun eso.

haber si alguien me orienta.gracias desde ya.

EDITADO: mm parece que lo encontre estaba mal algo en el hook, con WM_COMMAND ya puedo saber cual es  ;D.

saludos.
« última modificación: Noviembre 21, 2009, 12:47:20 am por seba123neo »

Nano-rosario

  • Bit
  • Mensajes: 4
  • Reputación: +0/-0
    • Ver Perfil
Re:Hook en menu Mensaje click derecho
« Respuesta #1 en: Diciembre 17, 2009, 04:48:09 pm »
Seba se que es un poco tarde pero para cargar cualquier dato de forma recursiva lo hago asi. Usando db, sino tendrias que filtrar los datos de otra forma, pero la funcion te sirve.

Código: [Seleccionar]
Call Agrega("0", False)

Private Sub Agrega(parent As String, chield As Boolean, Optional n As cTreeViewNode)
    Dim rs As Recordset
    Dim i As Integer
    Dim nod As cTreeViewNode
    Set rs = GetRecordset
    rs.CursorLocation = 3
    rs.Open "Select Id,Nombre,Pic from SM_FO where Parent='" & parent & "'", m_objConnection, adOpenForwardOnly, adLockReadOnly
    If rs.RecordCount > 0 Then
        For i = 1 To rs.RecordCount
            If chield = False Then
                Set nod = tw.Nodes.Add(, , rs(0), rs(1), rs(2))
            Else
                Set nod = n.AddChildNode(rs(0), rs(1), rs(2))
            End If
            Call Agrega(rs(0), True, nod)
            rs.MoveNext
        Next
    End If
    Set rs = Nothing
End Sub

saludos