Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: ricardovinzo en 16 Septiembre 2008, 02:16 AM

Título: pregunta sobre API
Publicado por: ricardovinzo en 16 Septiembre 2008, 02:16 AM
Bueno esta es mi pregunta, cree unas funciones para median API crear un menu popup, y todo chevere tiene tres opciones que se llaman (1 mensaje, 2 saludos, 3 salir ) pero ahora tengo una duda, como al clikear una de estas opciones, puedo hacer que algo ocurra, por ejemplo en el 3 que al darle donde dice salir, cierre el form??
Título: Re: pregunta sobre API
Publicado por: BlackZeroX en 16 Septiembre 2008, 02:20 AM
mmm a lo que entiendo es que tienes un menu como estos de archivo edicion etc etc no?  bueno crealo ok

Pasos:

Crea los menus...
no los ocultes aun mejor ocutalos cuando se ejecute el form q los contiene

private sub form_load()
menu.visible=false
end sub

pero en el modo diseño despiegalos y dales un click a estos y te aparecera la region de programan de tal submenu

que deberia ser algo asi

private sub nombresubmenu_click()
unload me 'Descarga el formulario actual
end sub
o tambien puedes usar
private sub nombresubmenu_click()
end
end sub
Título: Re: pregunta sobre API
Publicado por: ricardovinzo en 16 Septiembre 2008, 02:54 AM
no mira yo digo, con estas API ( y otras mas )

Private Declare Function CreatePopupMenu Lib "user32" () As Long
Private Declare Function TrackPopupMenu Lib "user32" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal x As Long, ByVal y As Long, ByVal nReserved As Long, ByVal hwnd As Long, ByVal lprc As Any) As Long

se puede hacer un PopUp menu, lo que no se hacer, es cuando cliokee una de las opciones que le pongo al menu ocurra algo!.. eso es lo que quiero saber como lo hago!
Título: Re: pregunta sobre API
Publicado por: BlackZeroX en 16 Septiembre 2008, 04:56 AM
bien bueno aca esta deberias espesificar eso je xP

me acabe de leer esto <Click aca> (http://www.elguille.info/colabora/vb/menu_jordi.htm)

Código (vb) [Seleccionar]

Private Declare Function CreatePopupMenu Lib "user32" () As Long
Private Declare Function DestroyMenu Lib "user32" (ByVal hMenu As Long) As Long
Private Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long
Private Declare Function TrackPopupMenu Lib "user32" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal x As Long, ByVal y As Long, ByVal nReserved As Long, ByVal hwnd As Long, lprc As Any) As Long

Const TPM_NONOTIFY = &H80
Const TPM_RETURNCMD = &H100

Private Type PointAPI
    x As Long
    y As Long
End Type

Private Declare Function GetCursorPos Lib "user32" (lpPoint As PointAPI) As Long

Dim Menu As Long

Private Sub Form_Load()
    Menu = CreatePopupMenu()
    Call AppendMenu(Menu, MF_STRING, 1, "Me Corte las Venas")
    Call AppendMenu(Menu, MF_STRING, 2, "Malditasea me muerrooo")
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    Dim ID As Long
    Dim Cursor As PointAPI
    Call GetCursorPos(Cursor)
    ID = TrackPopupMenu(Menu, TPM_NONOTIFY + TPM_RETURNCMD, Cursor.x, Cursor.y, 0, Me.hwnd, 0)
    Select Case ID
    Case 1:
        MsgBox ("Me Corte las Venas")
    Case 2:
        MsgBox ("Malditasea me muerrooo")
        Unload Me
    End Select
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Call DestroyMenu(Menu)
End Sub