Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: VB6: Systray icon

Cc [05.06.2005 15:24:57]

#

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

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta