VBasicFacil
Principal - Enlaces - Codigo - Controles - API
Declaración
Declare Function SetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Long
Plataformas
Descripción
Pone el hilo que crea la ventana especificada en primer plano y activa la ventana. Las entradas del teclado son dirigidas a la ventana.
Parámetros
hWnd Identifica la ventana que será activada y trae el proceso a primer plano.
Valor devuelto
Si la funcion falla devuelve 0, sino devuelve distinto de 0. Para saber mas
información del error usar la función GetLastError.
Ejemplo
| Se abre un formulario que al minimizarlo pasa al TrayIcon. Pondremos un Icono en el TrayIcon que podra ser verde o rojo según el menu emergente que aparece al pasar el raton sobre el icono. |
|
Formulario (Contiene dos PictureBox )
Option Explicit
Private Sub Form_Load()
Me.Show
Icono.cbSize = Len(Icono)
Icono.hwnd = Picture2.hwnd
Icono.uID = 1&
Icono.uFlags = NIF_MESSAGE Or NIF_ICON Or NIF_TIP
Icono.uCallbackMessage = WM_MOUSEMOVE
Icono.hIcon = Picture2.Picture
Icono.szTip = "TrayIcon Menu" & Chr$(0)
Shell_NotifyIcon NIM_ADD, Icono
End Sub
Private Sub Form_Resize()
' Ocultar el formulario si es minimizado
' Ocultar el icono del tray si el tamaño es normal
Select Case Me.WindowState
Case vbMinimized
Me.Hide
Shell_NotifyIcon NIM_ADD, Icono
Case vbNormal
Shell_NotifyIcon NIM_DELETE, Icono
End Select
End Sub
Private Sub mnuCerrar_Click()
Shell_NotifyIcon NIM_DELETE, Icono
End
End Sub
Private Sub mnuRojo_Click()
mnuRojo.Checked = True
mnuVerde.Checked = False
Me.Icon = Picture1.Picture
Icono.hIcon = Picture1.Picture
Icono.szTip = " Opcion Roja " & Chr$(0)
Shell_NotifyIcon NIM_MODIFY, Icono
End Sub
Private Sub mnuVerde_Click()
mnuVerde.Checked = True
mnuRojo.Checked = False
Me.Icon = Picture2.Picture
Icono.hIcon = Picture2.Picture
Icono.szTip = " Opcion verde " & Chr$(0)
Shell_NotifyIcon NIM_MODIFY, Icono
End Sub
Private Sub Picture2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lMessage As Long
Dim Result As Long
If Me.ScaleMode = vbPixels Then
'No necesita conversion
lMessage = X
Else
'Convertimos Pixels a Twips
lMessage = X / Screen.TwipsPerPixelX
End If
Select Case lMessage
Case WM_MOUSEMOVE
Case WM_LBUTTONDOWN
Case WM_LBUTTONUP
Form1.PopupMenu Form1.mnuMenu
Case WM_LBUTTONDBLCLK
Result = SetForegroundWindow(Me.hwnd)
Me.WindowState = vbNormal
Me.Show
Case WM_RBUTTONDOWN
Case WM_RBUTTONUP
Form1.PopupMenu Form1.mnuMenu
Case WM_RBUTTONDBLCLK
Result = SetForegroundWindow(Me.hwnd)
Me.WindowState = vbNormal
Me.Show
Case Else
End Select
End Sub
|
|
Modulo Option Explicit Public Declare Function Shell_NotifyIcon _ Lib "shell32.dll" _ Alias "Shell_NotifyIconA" _ (ByVal dwMessage As Long, _ lpData As NOTIFYICONDATA) As Long Public Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long Public 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 Global Icono As NOTIFYICONDATA ' Mensajes del Shell_NotifyIcon Global Const NIM_ADD = &H0 Global Const NIM_MODIFY = &H1 Global Const NIM_DELETE = &H2 Global Const NIF_MESSAGE = &H1 Global Const NIF_ICON = &H2 Global Const NIF_TIP = &H4 ' Mensajes que windows manda al programa Public Const WM_MOUSEMOVE = &H200 'MouseMove message Public Const WM_LBUTTONDOWN = &H201 'Button down Public Const WM_LBUTTONUP = &H202 'Button up Public Const WM_LBUTTONDBLCLK = &H203 'Double-click Public Const WM_RBUTTONDOWN = &H204 'Button down Public Const WM_RBUTTONUP = &H205 'Button up Public Const WM_RBUTTONDBLCLK = &H206 'Double-click |
| Descargar Codigo : NotifyIcon.zip |
Aplicaciones:
Ver también:
Categoría: Varios
Ultima actualización : 29 de noviembre de 2003 Copyright © 2000 - 2003 Silared, s.l. correo-e : vbasicfacil@silared.com Site : www.vbasicfacil.com