Sistem tepsisinde doğrudan Visual Basic'ten nasıl kullanılır?

Makale çevirileri Makale çevirileri
Makale numarası: 176085 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, Windows sistem tepsisi veya Visual Basic kullanarak, görev çubuğu bildirim alanı tam olarak yararlanmak gösterilmiştir. Seçeceğiniz bir simge görev çubuğu bildirim fareyi üzerine rested tıklatıldığında uygulamayı geri yükler ve açılan bir menü görüntüler, seçeceğiniz bir araç ipucu görüntüleyecektir alanı yerleştirir, right-clicked. Bu özelliği doğrudan geri çağrıları işlemek için Visual Basic'ın nedeniyle olası tüm, bu nedenle tam Shell_NotifyIcon işlevi, yararlanarak Shell32.dll tarafından verilir.

Daha fazla bilgi

Aşağıdaki örnekte, en az bir form ve standart bir modüle sahip tüm Visual Basic Project'e eklenebilir.

Adım adım örnek

  1. Standart bir Proje modülünde <a1>bildirimleri</a1> bölümüne aşağıdaki kodu ekleyin:
          'user defined type required by Shell_NotifyIcon API call
          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
    
          'constants required by Shell_NotifyIcon API call:
          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     '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
    
          Public Declare Function SetForegroundWindow Lib "user32" _
          (ByVal hwnd As Long) As Long
          Public Declare Function Shell_NotifyIcon Lib "shell32" _
          Alias "Shell_NotifyIconA" _
          (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
    
          Public nid As NOTIFYICONDATA
    					
  2. Projenizde sistem tepsisi simgesini veya bildirim simgesi, için uygulamanızın yanıt vermesini istediğiniz herhangi bir form için aşağıdaki kodu ekleyin:
          Private Sub Form_Load()
           'the form must be fully visible before calling Shell_NotifyIcon
           Me.Show
           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 = "Your ToolTip" & vbNullChar
           End With
           Shell_NotifyIcon NIM_ADD, nid
          End Sub
    
          Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
          'this procedure receives the callbacks from the System Tray icon.
          Dim Result As Long
          Dim msg As Long
           'the value of X will vary depending upon the scalemode setting
           If Me.ScaleMode = vbPixels Then
            msg = X
           Else
            msg = X / Screen.TwipsPerPixelX
           End If
           Select Case msg
            Case WM_LBUTTONUP        '514 restore form window
             Me.WindowState = vbNormal
             Result = SetForegroundWindow(Me.hwnd)
             Me.Show
            Case WM_LBUTTONDBLCLK    '515 restore form window
             Me.WindowState = vbNormal
             Result = SetForegroundWindow(Me.hwnd)
             Me.Show
            Case WM_RBUTTONUP        '517 display popup menu
             Result = SetForegroundWindow(Me.hwnd)
             Me.PopupMenu Me.mPopupSys
           End Select
          End Sub
    
          Private Sub Form_Resize()
           'this is necessary to assure that the minimized window is hidden
           If Me.WindowState = vbMinimized Then Me.Hide
          End Sub
    
          Private Sub Form_Unload(Cancel As Integer)
           'this removes the icon from the system tray
           Shell_NotifyIcon NIM_DELETE, nid
          End Sub
    
          Private Sub mPopExit_Click()
           'called when user clicks the popup menu Exit command
           Unload Me
          End Sub
    
          Private Sub mPopRestore_Click()
           'called when the user clicks the popup menu Restore command
           Dim Result As Long
           Me.WindowState = vbNormal
           Result = SetForegroundWindow(Me.hwnd)
           Me.Show
          End Sub
    					
  3. Yukarıdaki kod eklediğiniz aynı formda aşağıdaki özellik ayarlarını yapın:
       Property         Required Setting for Taskbar Notification Area example
       -----------------------------------------------------------------------
       Icon           = The icon you want to appear in the system tray.
       Minbutton      = True
       ShownInTaskbar = False
    					
  4. Aşağıdaki menü öğeleri menü Düzenleyicisi'ni kullanarak aynı forma ekleyin:
       Caption      Name          Enabled   Visible   Position
       ---------------------------------------------------------
       &SysTray     mPopupSys      True      False    Main Level
       &Restore     mPopRestore    True      True     Inset one
       &Exit        mPopExit       True      True     Inset one
    					
Ek bir menü öğeleri gerektiği gibi ekleyin.

Görev çubuğu bildirim alanına esneklik

Bildirim üzerinde görünen araç ipucu değiştirebilirsiniz Form_Load yordamı aşağıdaki satırda değiştirerek simge:
   .szTip = "Your ToolTip" & vbNullChar
				
"ToolTip bilgisayarınızı" görünmesini istediğiniz metinle değiştir.

Aşağıdaki satırı Form_Load yordamında değiştirerek görev çubuğu bildirim alanında beliren simgeyi değiştirebilirsiniz:
   .hIcon = Me.Icon
				
Değiştir Me.Icon projenizdeki herhangi bir simge ile.

Görev çubuğu bildirim alanı ayarlarının kullanımı NIM_ADD sabitinin sonra herhangi bir anda nid değişken değerleri yeniden atama ve sonra Shell_NotifyIcon API çağrısı aşağıdaki olan değişim'i kullanarak değiştirebilirsiniz:
   Shell_NotifyIcon NIM_MODIFY, nid.
				
geri, sonra da almak için farklı bir form istiyorsanız ancak, geçerli simge silin NIM_Modify işlevi veya yeni bir Hwnd kabul etmeyecek şekilde "Shell_NotifyIcon NIM_Delete, nid" kullanarak systray, yeni form kullanmak için başka bir simge eklemek gerekecektir "Shell_NotifyIcon nid NIM_ADD," Yeni nid türüyle dolumu sonra Hwnd oluşturur. Windows sistem tepsisinde için bir simge görüntülemek ve her form, değiştirmek istediğiniz her form NIM_DELETE ve NIM_ADD sırasını kullanarak olay etkinleştirme (Bu alan için nid türü ayrı kopyalarını da bildirebilirsiniz.

Referanslar

Sistem tepsisinde kullanarak veya görev çubuğu bildirim alanında Visual Basic 4.0 veya önceki sürümleri kullanma ile ilgili daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
149276Windows 95/98/Me görev çubuğu bildirim alanı simgeleri nasıl kullanılır

Özellikler

Makale numarası: 176085 - Last Review: 29 Eylül 2006 Cuma - Gözden geçirme: 2.5
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic Control Creation Edition
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
Anahtar Kelimeler: 
kbmt kbbug kbhowto KB176085 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:176085

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com