Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
25/07/07 16:03
gecko6989
Volevo sapere come si fa ad aggiugere ad un programma i tasti, in alto a destra, di "Riduci ad icona" e "Minimizza in trayicon" ???

Grazie.
aaa
30/07/07 9:46
c.ronaldo
Allora per il tasto riduci a icona basta che metti :

Private Sub Command1_Click()
Me.WindowState = 1
End Sub


Per la traycon la cosa è un po piu complicata...devi usare le api!

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

Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2
Private Const WM_MOUSEMOVE = &H200
Private Const NIF_MESSAGE = &H1
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4

Private Const WM_LBUTTONDBLCLK = &H203
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Const WM_RBUTTONDBLCLK = &H206
Private Const WM_RBUTTONDOWN = &H204
Private Const WM_RBUTTONUP = &H205

Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
Dim T As NOTIFYICONDATA

Private Sub Form_Load()
   
    'Setup initial Tray Icon
    T.cbSize = Len(T)
    T.hWnd = pichook.hWnd
    T.uId = 1&
    T.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
    T.ucallbackMessage = WM_MOUSEMOVE
    T.hIcon = imgOne.Picture
    T.szTip = "Recent" & Chr$(0)
    Shell_NotifyIcon NIM_ADD, T
   
    'Hide this form
    Me.Hide
End Sub


Private Sub Form_Unload(Cancel As Integer)
    'Unload this form. Important: always end with "unload me".
    T.cbSize = Len(T)
    T.hWnd = pichook.hWnd
    T.uId = 1&
    Shell_NotifyIcon NIM_DELETE, T
    End
End Sub

COn questo all'avvio del prog apparira un icona in tray,e alla chiusura scomparira!
;)
aaa
16/07/09 20:35
pgcapuzzo
Ho provato, ma 'form_load' mi restituisce '424-necessario oggetto' su

T.hWnd = pichook.hWnd

Cosa mi manca?
Grazie
aaa
16/07/09 21:40
GrG
pichook sarebbe il nome del form, evidentemente il tuo form si chiama diversamente... il codice ricorretto è:
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

Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2
Private Const WM_MOUSEMOVE = &H200
Private Const NIF_MESSAGE = &H1
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4

Private Const WM_LBUTTONDBLCLK = &H203
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Const WM_RBUTTONDBLCLK = &H206
Private Const WM_RBUTTONDOWN = &H204
Private Const WM_RBUTTONUP = &H205

Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
Dim T As NOTIFYICONDATA

Private Sub Form_Load()
  
    'Setup initial Tray Icon
    T.cbSize = Len(T)
    T.hWnd = Me.hWnd
    T.uId = 1&
    T.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
    T.ucallbackMessage = WM_MOUSEMOVE
    T.hIcon = Me.Icon
    T.szTip = "Recent" & Chr$(0)
    Shell_NotifyIcon NIM_ADD, T
  
    'Hide this form
    Me.Hide
End Sub


Private Sub Form_Unload(Cancel As Integer)
    'Unload this form. Important: always End With "unload me".
    T.cbSize = Len(T)
    T.hWnd = Me.hWnd
    T.uId = 1&
    Shell_NotifyIcon NIM_DELETE, T
    End
End Sub


Comunque la discussione è del 2007! Non riprendere discussioni così vecchie!!!
Se hai altri problemi apri un nuovo topic, qui chiudo
aaa