วิธีการใช้ถาดของระบบโดยตรงจาก Visual Basic

ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ

ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:176085
บทความนี้ถูกเก็บถาวรแล้วเนื้อหาของบทความจึงถูกนำเสนอ "ตามลักษณะที่เป็น" และจะไม่มีการปรับปรุงข้อมูลอีก
สรุป
บทความนี้อธิบายวิธีการใช้ประโยชน์จากทั้งหมดของถาดระบบ Windows หรือพื้นที่การแจ้งเตือนแถบงาน การใช้ Visual Basic จะวางไอคอนที่คุณเลือกลงในพื้นที่แจ้งเตือนของแถบงานที่จะแสดงคำแนะนำเครื่องมือที่คุณเลือกเมื่อเมาส์ rested ผ่านนั้น จะคืนค่าโปรแกรมประยุกต์เมื่อคลิก และจะแสดงเมนูแบบผุดขึ้น เมื่อ right-clicked นี่คือทั้งหมดที่เป็นไปได้เนื่องจากความสามารถของ Visual Basic เพื่อจัดการ callbacks โดยตรง ดังนั้น ใช้ประโยชน์จากฟังก์ชัน Shell_NotifyIcon เต็มรูปแบบที่ถูกส่งออก โดย Shell32.dll
ข้อมูลเพิ่มเติม
ตัวอย่างต่อไปนี้สามารถถูกเพิ่มไปยังโครงการพื้นฐานแสดงผลที่มีอย่างน้อยหนึ่งฟอร์มและโมดูลมาตรฐาน

ตัวอย่าง step-by-Step

  1. เพิ่มรหัสต่อไปนี้ไปยังส่วน declarations ของโมดูลมาตรฐานในโครงการของคุณ:
          '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. เพิ่มรหัสต่อไปนี้ในแบบฟอร์มใด ๆ ในโครงการของคุณที่คุณต้องการการตอบสนองต่อไปยังไอคอนถาดของระบบ หรือไอคอนการแจ้งเตือน สำหรับโปรแกรมประยุกต์ของคุณ:
          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. ตรวจสอบการตั้งค่าคุณสมบัติต่อไปนี้ในแบบฟอร์มเดียวกันที่คุณเพิ่มรหัสที่ด้านบน:
       Property         Required Setting for Taskbar Notification Area example   -----------------------------------------------------------------------   Icon           = The icon you want to appear in the system tray.   Minbutton      = True   ShownInTaskbar = False					
  4. เพิ่มรายการเมนูต่อไปนี้ให้กับฟอร์มเดียวกันที่ใช้ตัวแก้ไขเมนู:
       Caption      Name          Enabled   Visible   Position   ---------------------------------------------------------   &SysTray     mPopupSys      True      False    Main Level   &Restore     mPopRestore    True      True     Inset one   &Exit        mPopExit       True      True     Inset one					
คุณสามารถเพิ่มรายการเมนูที่เพิ่มเติมตามความจำเป็น

ความยืดหยุ่นพื้นที่แจ้งเตือนของแถบงาน

คุณสามารถปรับเปลี่ยนการแนะนำเครื่องมือที่ปรากฏอยู่เหนือการแจ้งเตือนที่ไอคอน โดยการเปลี่ยนบรรทัดต่อไปนี้ในขั้นตอน Form_Load:
   .szTip = "Your ToolTip" & vbNullChar				
แทน "ของคุณแนะนำเครื่องมือ" พร้อมกับข้อความที่คุณต้องการให้ปรากฏ

คุณสามารถปรับเปลี่ยนไอคอนที่ปรากฏในพื้นที่แจ้งเตือนของแถบงาน ด้วยการเปลี่ยนบรรทัดต่อไปนี้ในขั้นตอน Form_Load:
   .hIcon = Me.Icon				
แทน Me.Icon ด้วยไอคอนใด ๆ ในโครงการของคุณ

คุณสามารถเปลี่ยนการตั้งค่าพื้นที่แจ้งเตือนของแถบงานตลอดเวลาหลังจากการใช้ค่าคง NIM_ADD โดยกำหนดใหม่ค่าในตัวแปร nid และใช้การเปลี่ยนแปลงต่อไปนี้ของการเรียก Shell_NotifyIcon API แล้ว:
   Shell_NotifyIcon NIM_MODIFY, nid.				
อย่างไรก็ตาม ถ้าคุณต้องการให้แบบฟอร์มต่าง ๆ จะได้รับการเรียกกลับ แล้วคุณ จะต้องการลบไอคอนปัจจุบันก่อน การใช้ "Shell_NotifyIcon NIM_Delete, nid" ตามฟังก์ชัน NIM_Modify จะไม่ยอมรับแบบ Hwnd ใหม่ หรือคุณจะต้องเพิ่มไอคอนอื่น systray สำหรับการใหม่ฟอร์มใช้ " Shell_NotifyIcon NIM_ADD, nid " หลังจากการเติมสินค้าชนิด nid กับข้อความใหม่ในแบบฟอร์ม Hwnd นอกจากนี้คุณสามารถประกาศชนิด nid สำเนาแยกต่างหากสำหรับแต่ละฟอร์มที่คุณต้องการแสดงไอคอนสำหรับในถาดของระบบ Windows และการเปลี่ยนแปลงในแต่ละฟอร์ม ของเปิดใช้งานเหตุการณ์ที่มีการใช้ลำดับ NIM_DELETE และ NIM_ADD
ข้อมูลอ้างอิง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ถาดของระบบ หรือใช้พื้นที่แจ้งเตือนแถบงาน จาก Visual Basic 4.0 หรือรุ่นก่อนหน้านี้ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
149276วิธีการใช้ไอคอนกับ Windows 95/98/Me แถบงานพื้นที่แจ้งเตือน
แถบงาน

คำเตือน: บทความนี้ได้รับการแปลโดยอัตโนมัติ

คุณสมบัติ

รหัสบทความ: 176085 - การตรวจสอบครั้งสุดท้าย: 12/05/2015 08:09:14 - ฉบับแก้ไข: 3.0

Microsoft Visual Basic 6.0 Professional Edition, 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

  • kbnosurvey kbarchive kbbug kbhowto kbmt KB176085 KbMtth
คำติชม