Saludos bueno e llegado con varias dudas espero que me las puedan explicar:
1- como puedo por ejemplo si tengo una aplicacion y cuando la minimize desaparesca pero no se cierre osea que aparezca el icono y cuando le de doble click o click derecho salga un menu que me permita restaurar esa aplicacion? tipo Nod32, msn, cualierp orgrama..
2- en funciones msn hay mucahs funciones que en VB6 no encuentro como usarlas ni buena info de como se utiliza y estan son:
OnMyFriendlyNameChange
OnContactBlockChange
OnMyStatusChange
osea como se deeclaran y usan estas funciones?..
espero no ser molestia para ustedes y gracias! ;)
Cita de: brache en 16 Mayo 2008, 22:49 PM
Saludos bueno e llegado con varias dudas espero que me las puedan explicar:
1- como puedo por ejemplo si tengo una aplicacion y cuando la minimize desaparesca pero no se cierre osea que aparezca el icono y cuando le de doble click o click derecho salga un menu que me permita restaurar esa aplicacion? tipo Nod32, msn, cualierp orgrama..
2- en funciones msn hay mucahs funciones que en VB6 no encuentro como usarlas ni buena info de como se utiliza y estan son:
OnMyFriendlyNameChange
OnContactBlockChange
OnMyStatusChange
osea como se deeclaran y usan estas funciones?..
espero no ser molestia para ustedes y gracias! ;)
Lo primero buscate un ejemplo, se hace con el api
Shell_NotifyIcon.
Lo otro no son funciones son eventos y el primero es para cuando cambias el nick, el segundo es si bloqueas o desbloqueas a un contacto y el tercero es cuando cambias de estado.
gracias!.. man pero lo del segundo si se para que son pero no se como se utiliza!:S
Cita de: brache en 17 Mayo 2008, 00:20 AM
gracias!.. man pero lo del segundo si se para que son pero no se como se utiliza!:S
prueba... mira este ejemplo
Option Explicit
Private WithEvents MSN As MessengerAPI.Messenger
Private Sub Form_Load()
Set MSN = New Messenger
End Sub
Private Sub MSN_OnContactBlockChange(ByVal hr As Long, ByVal pContact As Object, ByVal pBoolBlock As Boolean)
Dim Contacto As IMessengerContact
Set Contacto = pContact
Select Case pBoolBlock 'Se bloqueo o se desbloqueo?
Case True 'Se bloqueo
MsgBox Contacto.SigninName & " ha sido bloqueado"
Case False 'Se desbloqueo
MsgBox Contacto.SigninName & " ha sido desbloqueado"
End Select
End Sub
Private Sub MSN_OnMyFriendlyNameChange(ByVal hr As Long, ByVal bstrPrevFriendlyName As String)
'Funciona solo para el Windows Messenger
End Sub
Private Sub MSN_OnMyStatusChange(ByVal hr As Long, ByVal mMyStatus As MessengerAPI.MISTATUS)
MsgBox mMyStatus 'Devuelve el numero de estado al que se cambio.
End Sub
bien mira..este codigo que te pondre aqui ponlo en tu formulario..
'Api SetForegroundWindow Para traer la ventana al frente
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
'estructura NOTIFYICONDATA
Private Type NOTIFYICONDATA
cbSize As Long
hwnd As Long
uID As Long
uFlags As Long
uCallbackMessage As Long
hIcon As Long
szTip As String * 64
End Type
'Constantes para las acciones
Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2
Private Const NIF_MESSAGE = &H1
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4
'Constantes para los botones y le mouse
Private Const WM_MOUSEMOVE = &H200
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Const WM_LBUTTONDBLCLK = &H203
Private Const WM_RBUTTONDOWN = &H204
Private Const WM_RBUTTONUP = &H205
Private Const WM_RBUTTONDBLCLK = &H206
'función Api Shell_NotifyIcon
Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
'variable para la estructura
Dim systray As NOTIFYICONDATA
' luego esto
Private Sub Form_Activate()
PonerSystray
End Sub
' sigue
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim msg As Long
If (Me.ScaleMode = vbPixels) Then
msg = X
Else
msg = X / Screen.TwipsPerPixelX
End If
Select Case msg
Case WM_LBUTTONDBLCLK
'Si hacemos doble click con el botón izquierdo restauramos el form
Me.WindowState = vbNormal
Call SetForegroundWindow(Me.hwnd)
Me.Show
Case WM_RBUTTONUP
Call SetForegroundWindow(Me.hwnd)
'Si hacemos Click con el boton derecho mostramos el popup Menu
Me.PopupMenu Me.mnuPopUp
Case WM_LBUTTONUP
End Select
End Sub
Private Sub RemoverSystray()
Shell_NotifyIcon NIM_DELETE, systray
End Sub
Private Sub Form_Resize()
If (Me.WindowState = vbMinimized) Then Me.Hide
End Sub
'el sub de sustray
Private Sub PonerSystray()
'Tamaño de la estructura systray
systray.cbSize = Len(systray)
'Establecemos el Hwnd, en este caso del formulario
systray.hwnd = Me.hwnd
'Esto es un identificador
systray.uID = vbNull
'Flags
systray.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
'Establecemos el mensaje callback
systray.uCallbackMessage = WM_MOUSEMOVE
'establecemos el icono, en este caso el que tiene el form, puede ser otro
systray.hIcon = Me.Icon
'Establecemos el tooltiptext
systray.szTip = Me.Caption & vbNullChar
'Ponemos el icono en el systray
Shell_NotifyIcon NIM_ADD, systray
End Sub
ok con eso tendra ya tu icono en el sustray kon opciones en el boton derecho cuando se este por ensima de el icono acuerdate que el ese nombre del nombre del menu que esta ahi es de mi aplicacion puedes kambiarlo si lo deseas.. si tienes alguna duda no o te sivio el code hasmelo sabe..espero que te sirva (y)