Al minimizar k se convierta en un notyicon

Iniciado por Lambda, 9 Junio 2006, 20:06 PM

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

Lambda

weno lo del icono ya lo tengo pero lo k quiero eske al minimizarse el formulario no se minimize a la barra d tareas o sea k se haga un form1.hide y k el icono apareza dnde ta el reloj

alomejor no me e explicado bien
xD


saludos

Lambda

weno ya lo solucione xD y sin buskar en google :P xD


Private Sub Form_Resize()
If form1.WindowState = "1" Then
form1.Hide
NotifyIcon.SetEnabled True
End If
End Sub

renga73

Puse eso y no me funciona me tira error en la linea: NotifyIcon.SetEnabled True
Como hiciste??

_Sergi_

A mi tampoco me funciona (en VB 6.0)

Lo más probable es que se trate de otra versión de VB o que haya mucho más codigo que él no ha posteado.
Proyecto de Ingeniero

Lambda

el notifyicon es un control ocx k le e añadido al programa xD

lo kitais y poneis lo k kiere k haga cuando se minimize

saludos

renga73

lambda eso es para .net o VB6, y en todo caso me podrias pasar NotifyIcon.ocx q no la puedo conseguir por ningun lado

_Sergi_

Si quieres que te ayudemos, necesitamos NotifyIcon.ocx

Un saludo.
Proyecto de Ingeniero

Red Mx

#7
Actulisado el 10/07/06

Caballeros ese tema ya lo respondi una ves es muy facil espero que alguien gurde este post con candado ya que es algo muy recurrido.


Primero nesesitamos el control SysTray.ocx y un ejemplo que mejor que mi reproductor de musica jajaja publisidad bueno descargatelo ahi tiene el control que ocuparemos.

Descargar


ya que tienes el control no te preocupes mi empaquetado lo registra

se econtrara en la carpeta por defalut es

c:\Archivos de programa\Red Music



listo ta gueno abre tu VB de ahi en agregar componentes agrega el "systray icon control" agregalo de ahi pegale uno al form de ahi en la propiedades fijate bien en tray tip pon el nombre de tu proyecto asi cuando este el icono junto al reloj al pasar por ahi diga "EL nombre de tu proyecto" bueno si quieres que el icono se vea mientras ejecutas el  programa la propiedad In tray cabiala a True a en tray icon dale la ruta de tu icono

para que al minimizar se vea solo has esto mmm ponemos un timer con intervalo de 100 ahi ponemos lo siguiente



Private Sub Timer1_Timer()
If Form1.WindowState = 1 Then
cSysTray1.InTray = True
End If
End Sub




listo para ocultar el icono pon en ese mismo timer


If Form1.WindowState = 0 or Form1.WindowState = 2 Then
cSysTray1.InTray = false
End If
End Sub

Saludos Red Mx!!!!
Desarrollar Malware Es Causa De Cancer...

NYlOn

Si queres evitar el uso del OCX podes usar el siguiente codigo.
En un modulo pones:

Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, ByRef lpData As NOTIFYICONDATA) 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
Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1 'Borrar si no se quiere animar la imagen
Public Const NIM_DELETE = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4
Public Const WM_LBUTTONDBLCLK = &H203
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_RBUTTONUP = &H205
Dim IC As NOTIFYICONDATA

Public Sub Iconito(Tip As String, Foto As PictureBox)
    IC.cbSize = Len(IC)
    IC.hwnd = Foto.hwnd
    IC.uID = 1&
    IC.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
    IC.uCallbackMessage = WM_LBUTTONDOWN
    IC.hIcon = Foto.Picture
    IC.szTip = Tip & Chr(0)
    Shell_NotifyIcon NIM_ADD, IC
End Sub

Public Sub BorrarIconito()
    Shell_NotifyIcon NIM_DELETE, IC
End Sub


Y en el evento MouseDown de un PictureBox (que contiene la imagen que va a aparecer en la barra de tareas) pones:
NOTA: La imagen tiene que ser .ICO

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim msg As Integer
    msg = X / Screen.TwipsPerPixelX
    If msg = WM_LBUTTONDBLCLK Then
        MsgBox "Boton Izquierdo doble click."
    ElseIf msg = WM_RBUTTONUP Then
        MsgBox "Boton Derecho un click."
    End If
End Sub


Para usarlo ponemos simplemente:

Iconito "Texto", Picture1
[/cide]

Y para quitarlo pones:

BorrarIconito


Es importante que al cerrar el programa se borre el icono ya que sino va a quedar visible (al pasar el mouse desaparece, pero es mejor borrarlo).

Espero que te sirva, saludos.-

kuki06

Nose por que siempre que se resuelve una duda hay 2 opciones..

La larga  con 8 modulos y 300 lineas
y la otra de la corta pero poniendole "algo" al programa.. en fin xD..

PD: Red MX, el reproductor esta muy bueno la verdad..