Tarvitset formin ja moduulin. Formille tarvitset yhden command buttonin cmdPiilotus. Ja sinun täytyy tehdä menu editorilla valikko itsellesi. Ohjelma käyttää formin icon kuvaketta.
valikkoon
Caption: Systray Name: mnuSystray Vain Enable ruksattuna. ----- Sitten tee seuraava alivalikko Caption: Morjesta Name: mnuMorjesta Visible ja enable ruksattuina ----- seuraava alivalikko Caption: - Name: vali1 Visible ja enable ruksattuina ----- seuraava alivalikko Caption: Palauta ohjelma Name: mnuRestore Visible ja enable ruksattuina ----- seuraava alivalikko Caption: Sulje ohjelma Name: mnuexit Visible ja enable ruksattuina ----- Noniin valikoiden pitäisi näyttää tältä: Systray ''''Morjesta ''''- ''''Palauta ohjelma ''''Sulje ohjelma
formille
'Nappi piilottamista varten Private Sub cmdPiilotus_Click() WindowState = vbMinimized End Sub 'Tapahtuma kun painetaan morjesta nappia Private Sub mnuMorjesta_Click() Msgbox "Morjes", vbinformation, "Systray malli" End Sub 'ohjelman sulkeminen Private Sub mnuexit_Click() Unload Me End Sub 'ohjelman palauttaminen Private Sub mnuRestore_Click() WindowState = vbNormal Me.Show End Sub 'Poistetaan myös se kuva kun ohjelma sammuu Private Sub Form_Unload(Cancel As Integer) Shell_NotifyIcon NIM_DELETE, nid End End Sub 'Popup menu kun formi on piilossa Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, y As Single) Dim Sys As Long Sys = X / Screen.TwipsPerPixelX Select Case Sys Case WM_LBUTTONDOWN: Me.PopupMenu mnuSystray End Select End Sub 'Tämä piilottaa ohjelman systrayhyn Private Sub Form_Resize() If WindowState = vbMinimized Then Me.Hide Me.Refresh With nid .cbSize = Len(nid) .hwnd = Me.hwnd .uId = vbNull .uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE .uCallBackMessage = WM_MOUSEMOVE .hIcon = Me.Icon .szTip = Me.Caption & vbNullChar End With Shell_NotifyIcon NIM_ADD, nid Else Shell_NotifyIcon NIM_DELETE, nid End If End Sub
Moduuliin
'kaikkea tässä moduulissa tarvitaan systray iconin tekemiseen Option Explicit 'hyvät ohjelmointitavat Public Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean Public Const NIM_ADD = &H0 Public Const NIM_MODIFY = &H1 Public Const NIM_DELETE = &H2 Public Const NIF_MESSAGE = &H1 Public Const NIF_ICON = &H2 Public Const NIF_TIP = &H4 Public Const WM_MOUSEMOVE = &H200 Public Const WM_LBUTTONDOWN = &H201 Public Const WM_LBUTTONUP = &H202 Public Const WM_LBUTTONDBLCLK = &H203 Public Const WM_RBUTTONDOWN = &H204 Public Const WM_RBUTTONUP = &H205 Public Const WM_RBUTTONDBLCLK = &H206 Public Const HWND_TOPMOST = -1 Public nid As NOTIFYICONDATA 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
Aihe on jo aika vanha, joten et voi enää vastata siihen.