ชุมชนคนรักภาษาเบสิค - Visual Basic Community

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 3975|ตอบกลับ: 0

[VB6] การทำทูลบาร์ (ToolBar) ด้วย CodeJock ระดับมืออาชีพ

[คัดลอกลิงก์]

308

กระทู้

499

โพสต์

6025

เครดิต

ผู้ดูแลระบบ

ทองก้อน ทับทิมกรอบ

Rank: 9Rank: 9Rank: 9

เครดิต
6025



การใช้งาน CodeJock ActiveX ค่อนข้างที่จะใช้งานยากเอามากๆ หากลำพังแค่จับลากมาวางมันก็จะยังไม่ทำงานตามรูปแบบที่เราต้องการ เพราะจะต้องเขียนโค้ด (ขั้นสูงอีก) แต่มันเป็น ActiveX มหัศจรรย์ คือ ทำลายขีดจำกัดในเรื่องไฟล์ประเภท GIF, BMP หรือ ICO ที่ใช้งานร่วมกับ Visual Studio 98 มาอย่างยาวนาน ลงได้อย่างราบคาบ ทำให้ GUI มีสีสันที่สวยงาม น่าใช้งานโปรแกรมมากขึ้น ... บทความนี้จะเป็นการทำ ToolBar โดยจะเล่นกับ ImageManager และใช้โค้ดคำสั่งเข้าช่วย ...

ดาวน์โหลด CodeJock Suite Pro for ActiveX/COM ได้ที่นี่ (เฉพาะสมาชิกเท่านั้น)


เมนู Project --> Components ...

Design Time ...

เราจำเป็นต้องใช้ Component 3 ตัว ประกอบด้วย ...
- CommandBar ตัวนี้ช่วยทำเรื่องเมนู ทูลบาร์
- SkinFramework ตัวนี้ก็ตามชื่อเลย คือเรื่อง Skin
- ImageManager ตัวนี้จะใช้คู่กับ CommandBar เพื่อนำรูปกราฟิคประเภท PNG เข้ามาใช้งานให้สวยงาม

เรียงลำดับขั้นตอนการทำทูลบาร์

เลือก ImageManager --> Custom


เลือกปุ่มสร้าง Icon


ตั้งค่า ID ให้เป็นค่าตัวเลข และเลือกขนาดไอคอน = 32 x 32 Pixel.


เรียบร้อย ... ต่อไปเป็นจะเป็นการเลือก Import ภาพกราฟิคเข้ามา โดยไปที่ Import and Export


เลือก Import From Bitmap ...


Browse เลือกไฟล์ PNG


ต้องเอาเมาส์จิ้มลงในรูปไอคอนก่อน มันถึงจะปรากฏ ID ขึ้นมาให้เราเลือก ... กด Import


หากต้องการแก้ไข (รูปดินสอ) หรือ ลบ (รูปกรรไกร) เราต้องเอาเมาส์เข้าไปจิ้มรูปไอคอนสักอันก่อน ปุ่มต่างๆถึงจะขึ้นมาทำงาน ... จากนั้นก็วนรอบกลับไปเพิ่มรายการเข้ามาใหม่เหมือนเดิม แต่อย่าลืมเปลี่ยนค่า ID ด้วย

สร้างโมดูล หรือไฟล์ที่มีนามสกุล Bas ตัวอย่างคือ Resource.bas
  1. '// กำหนดค่าคงที่ให้กับปุ่ม
  2. Public Const ID_USER_TOOLS_1 = 801
  3. Public Const ID_USER_TOOLS_2 = 802
  4. Public Const ID_USER_TOOLS_3 = 803
  5. Public Const ID_USER_TOOLS_4 = 804
  6. Public Const ID_USER_TOOLS_5 = 805

  7. '// Constant from CodeJock, don't change.
  8. Public Const ID_INDICATOR_CAPS = 59137
  9. Public Const ID_INDICATOR_NUM = 59138
  10. Public Const ID_INDICATOR_SCRL = 59139
  11. '//
  12. 'Public Const FSHIFT = 4
  13. 'Public Const FCONTROL = 8
  14. 'Public Const FALT = 16
คัดลอกไปที่คลิปบอร์ด
เป็นการนำค่าคงที่มาเก็บไว้ที่นี่ เพื่อใช้อ้างถึงเวลาใช้งานในโค้ดหลัก ... แต่จะมีค่าบางตัวที่ถูกกำหนดเอาไว้จาก CodeJock แล้ว ต้องเปิดคู่มือด้วยล่ะกันครับ

โค้ดเรียกใช้งานจากฟอร์มหลัก ... คำอธิบายอยู่ในนี้ทั้งหมดแล้วครับ
  1. ' / ---------------------------------------------------------------------------------------
  2. ' / Developer : Mr.Surapon Yodsanga (Thongkorn Tubtimkrob)
  3. ' / eMail : thongkorn@hotmail.com
  4. ' / URL: http://www.g2gnet.com (Khon Kaen - Thailand)
  5. ' / Facebook: https://www.facebook.com/g2gnet (For Thailand)
  6. ' / Facebook: https://www.facebook.com/commonindy (Worldwide)
  7. ' / Purpose: Sample to make toolbar from CodeJock ActiveX.
  8. ' / Microsoft Visual Basic 6.0 (SP6)
  9. ' / ---------------------------------------------------------------------------------------
  10. Option Explicit

  11. Private Declare Function InitCommonControls Lib "Comctl32.dll" () As Long
  12. '// การสร้าง TabToolBar
  13. Private WithEvents TabToolBar As XtremeCommandBars.TabToolBar
  14. '// การสร้าง StatusBar
  15. Dim WithEvents StatusBar As XtremeCommandBars.StatusBar

  16. Private Sub MDIForm_Initialize()
  17.     Call InitCommonControls
  18. End Sub

  19. Private Sub MDIForm_Activate()
  20.     frmMain.Caption = "CodeJock ToolBars - Version " & App.Major & "." & App.Minor & " - coDe bY: Thongkorn Tubtimkrob"
  21.     StatusBar.IdleText = "Developer : thongkorn@hotmail.com [www.g2gnet.com] - www.facebook.com/g2gnet"
  22. End Sub

  23. Private Sub MDIForm_Load()
  24.     ' / ---------------------------------------------------------------------------------------
  25.     '// CommandBarsGlobalSettings มี Properties ให้ใช้งานได้หลากหลายมากครับ เช่น ทำโปรแกรมหลายภาษา
  26.     '// ตัวอย่าง ...  CommandBarsGlobalSettings.ResourceFile = "XTPResourceArSa.dll"
  27.     CommandBarsGlobalSettings.App = App
  28.      
  29.     '// Center Screen
  30.     Me.Move (Screen.Width - Width) \ 2, (Screen.Height - Height) \ 2

  31.     '/ ไม่ต้องการให้เมนูเคลื่อนที่ได้ (Stretched)
  32.     CommandBars1.ActiveMenuBar.EnableDocking xtpFlagStretched
  33.     CommandBars1.Options.KeyboardCuesShow = xtpKeyboardCuesShowWindowsDefault
  34.     CommandBars1.EnableCustomization False
  35.    
  36.     ' / ---------------------------------------------------------------------------------------
  37.     '/ แสดง Theme ... อยากได้ตัวไหนก็เลือกตามสบายครับ
  38.     'SkinFramework.LoadSkin App.Path + "\Styles\Office2007.cjstyles", "NORMALBLUE.ini"
  39.     'SkinFramework.LoadSkin App.Path + "\Styles\Office2007.cjstyles", "NORMALSILVER.ini"
  40.     SkinFramework1.LoadSkin App.Path + "\Styles\Vista.cjstyles", "NORMALBLUE.INI"
  41.     'SkinFramework.LoadSkin App.Path + "\Styles\Vista.cjstyles", "NORMALBLACK.INI"
  42.     'SkinFramework.LoadSkin App.Path + "\Styles\Vista.cjstyles", "NORMALSILVER.INI"
  43.     ' / ---------------------------------------------------------------------------------------
  44.     'SkinFramework.LoadSkin App.Path + "\Styles\WinXP.Royale.cjstyles", "NORMALBLUE.INI"
  45.    
  46.     SkinFramework1.ApplyWindow (Me.hWnd)
  47.     SkinFramework1.ApplyOptions = SkinFramework1.ApplyOptions Or xtpSkinApplyMetrics
  48.     CommandBars1.PaintManager.RefreshMetrics
  49.     CommandBars1.RecalcLayout
  50.     ' / ---------------------------------------------------------------------------------------
  51.    
  52.     '/ เพิ่มรายการ Tabbed ToolBar
  53.     Set TabToolBar = CommandBars1.AddTabToolBar("Main ToolBar")
  54.     '/ ไม่อนุญาตให้เพิ่ม/ลบ (Add or Remove Buttons) ที่มันจะอยู่ทางด้านขวามือสุดของ TabToolBar
  55.     TabToolBar.ShowExpandButton = False

  56.     '// เริ่มต้นการเพิ่มปุ่ม Control เข้ามายัง Tabbed ToolBar
  57.     '// ตัวแปร Control ในการสร้างกลุ่มของ ToolBar
  58.     Dim Control As CommandBarControl
  59.     With TabToolBar
  60.         Dim iCount As Integer
  61.         '/ สร้างรายการ ToolBar ขึ้นมา
  62.         '/ ค่าคงที่ ID_USER_TOOLS แต่ละตัว เราไปกำหนดล่วงหน้าเอาเองที่ Resource.bas
  63.         For iCount = ID_USER_TOOLS_1 To ID_USER_TOOLS_5
  64.             Select Case iCount
  65.                 Case 801: Set Control = .Controls.Add(xtpControlButton, iCount, "รายการตัวที่ 1")
  66.                 Case 802: Set Control = .Controls.Add(xtpControlButton, iCount, "รายการตัวที่ 2")
  67.                 Case 803: Set Control = .Controls.Add(xtpControlButton, iCount, "รายการตัวที่ 3")
  68.                 Case 804: Set Control = .Controls.Add(xtpControlButton, iCount, "รายการตัวที่ 4")
  69.                 Case 805: Set Control = .Controls.Add(xtpControlButton, iCount, "รายการตัวที่ 5")
  70.             End Select
  71.             Control.Category = "User Tools"
  72.         Next
  73.     End With
  74.    
  75.     '/ ประกาศตัวแปร Array ตามจำนวน ToolBar ที่ต้องการสร้างขึ้นมา เพื่อแสดงรูป Icon
  76.     '/ ในตัวอย่างมี 5 ตัว โดยเริ่มต้นจาก 0 ถึง 4
  77.     Dim icoIconArray(0 To 4) As Long
  78.     icoIconArray(0) = ID_USER_TOOLS_1
  79.     icoIconArray(1) = ID_USER_TOOLS_2
  80.     icoIconArray(2) = ID_USER_TOOLS_3
  81.     icoIconArray(3) = ID_USER_TOOLS_4
  82.     icoIconArray(4) = ID_USER_TOOLS_5
  83.    
  84.     '/ ส่งให้กับ CommandBars อีกที เพื่อให้ ToolBar แสดงภาพ Icon ได้
  85.     CommandBars1.Icons = ImageManager1.Icons
  86.     '/ ปรับขนาดฟอนต์ให้ ToolBar
  87.     CommandBars1.Options.Font.Size = 10
  88.     'CommandBars.ActiveMenuBar.EnableDocking xtpFlagStretched
  89.    
  90.     '/ ตั้งค่าขนาด Icon ตามที่เราออกแบบเอาไว้ แต่ละตัวจะมีขนาด 32x32 Pixel
  91.     TabToolBar.SetIconSize 32, 32
  92.     TabToolBar.ShowTextBelowIcons = True
  93.     '/ ไม่ให้เกิดการเคลื่อนที่ของ ToolBar ได้
  94.     TabToolBar.EnableDocking xtpFlagStretched
  95.     TabToolBar.Closeable = False
  96.     TabToolBar.Customizable = False
  97.    
  98.     ' ======================= ToolTips ==========================
  99.     Dim ToolTipContext As ToolTipContext
  100.     Set ToolTipContext = CommandBars1.ToolTipContext
  101.     ToolTipContext.Style = xtpToolTipOffice2007
  102.     ToolTipContext.ShowTitleAndDescription True, xtpToolTipIconNone
  103.     '/ ตั้งค่าตำแหน่งของ ToolTip
  104.     ToolTipContext.SetMargin 2, 2, 2, 2
  105.     ToolTipContext.MaxTipWidth = 180
  106.     ToolTipContext.ShowShadow = True
  107.     ' ======================= ToolTips ==========================
  108.    
  109.     '// การสร้าง StatusBar ที่อยู่ด้านล่างของฟอร์ม
  110.     Set StatusBar = CommandBars1.StatusBar
  111.     StatusBar.Visible = True
  112.     StatusBar.Font.Size = 9
  113.    
  114.     StatusBar.AddPane 0
  115.     '// ค่าคงที่ๆกำหนดไว้ใน Resource.bas และเป็นค่าสงวนที่เปลี่ยนแปลงไม่ได้
  116.     '// ปุ่ม CAPS LOCK, NUM OAD และ SCROLL LOCK
  117.     StatusBar.AddPane ID_INDICATOR_CAPS
  118.     StatusBar.AddPane ID_INDICATOR_NUM
  119.     StatusBar.AddPane ID_INDICATOR_SCRL
  120.     StatusBar.IdleText = "Developer : thongkorn@hotmail.com [www.g2gnet.com] - www.facebook.com/g2gnet"
  121. End Sub

  122. ' / ---------------------------------------------------------------------------------------
  123. ' / เหตุการณ์ในการกดคลิ๊กเมาส์เพื่อเลือกToolBars แต่ละตัว
  124. Private Sub CommandBars1_Execute(ByVal Control As XtremeCommandBars.ICommandBarControl)
  125. ' / ---------------------------------------------------------------------------------------
  126.     On Error Resume Next
  127.     '// โดยเลือกจากค่าคงที่ หรือ ID ที่เราสร้างไว้ใน Resource.bas
  128.     Select Case Control.Id
  129.         Case ID_USER_TOOLS_1:
  130.             MsgBox "คุณเลือกรายการ ToolBar ตัวที่ 1"
  131.         Case ID_USER_TOOLS_2:
  132.             MsgBox "คุณเลือกรายการ ToolBar ตัวที่ 2"
  133.         Case ID_USER_TOOLS_3:
  134.             MsgBox "คุณเลือกรายการ ToolBar ตัวที่ 3"
  135.         Case ID_USER_TOOLS_4:
  136.             MsgBox "คุณเลือกรายการ ToolBar ตัวที่ 4"
  137.         Case ID_USER_TOOLS_5:
  138.             MsgBox "คุณเลือกรายการ ToolBar ตัวที่ 5 และกำลังจะจบโปรแกรม"
  139.             End
  140.     End Select
  141. End Sub
คัดลอกไปที่คลิปบอร์ด

ดาวน์โหลด CodeJock Suite Pro for ActiveX/COM ได้ที่นี่ (เฉพาะสมาชิกเท่านั้น)

ดาวน์โหลดโค้ดต้นฉบับเต็ม VB6 ได้ที่นี่

ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน

x
สิ่งที่ดีกว่าการให้ คือการให้แบบไม่มีที่สิ้นสุด

1

กระทู้

11

โพสต์

37

เครดิต

Newbie

Rank: 1

เครดิต
37
โพสต์ 2018-7-31 20:57:43 | ดูโพสต์ทั้งหมด

สุดยอดมากเลยครับอาจารย์  อยากเลี้ยงเร้ด นี่ทำไง ครับอยู่ไกลกันมีโอกาสอยากแวะไปหาอาจารย์จัง สักชุด!!
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|G2GNet.com  

GMT+7, 2024-4-19 08:52 , Processed in 0.159877 second(s), 4 queries , File On.

Powered by Discuz! X3.4, Rev.62

Copyright © 2001-2020 Tencent Cloud.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้