Office或IE4风格的ToolBar 

    用API 可以轻松改变 ToolBar 的风格。需要 4.70 或其以上版本的 comctl32.dll 支持。

    声明:

Private Declare Function SendMessage Lib "user32" Alias _

"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _

ByVal wParam As Integer, ByVal lParam As Any) As Long

Private Declare Function FindWindowEx Lib "user32" Alias _

"FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 _

As Long, ByVal lpsz1 As String, ByVal lpsz2 As _

String) As Long

Private Const WM_USER = &H400

Private Const TB_SETSTYLE = WM_USER + 56

Private Const TB_GETSTYLE = WM_USER + 57

Private Const TBSTYLE_FLAT = &H800

Private Const TBSTYLE_LIST = &H1000

    函数:

' tlbToolbarStyle :

'1 为 Office97 风格

'2 为 IE4 风格

Public Sub ToolbarStyle(tlb As Toolbar, _

tlbToolbarStyle As Long)

Dim lngStyle As Long

Dim lngResult As Long

Dim lngHWND As Long


' Find child window and get style bits

lngHWND = FindWindowEx(tlb.hwnd, 0&, _

"ToolbarWindow32", vbNullString)

lngStyle = SendMessage(lngHWND, _

TB_GETSTYLE, 0&, 0&)


' Use a case statement to get the effect

Select Case tlbToolbarStyle

Case 1:

' Creates an Office 97 like toolbar

lngStyle = lngStyle Or TBSTYLE_FLAT

Case 2:

' Creates an Explorer 4.0 like toolbar,

' with text to the right

' of the picture. You must provide text

' in order to get the effect.

lngStyle = lngStyle Or TBSTYLE_FLAT _

Or TBSTYLE_LIST

Case Else

lngStyle = lngStyle Or TBSTYLE_FLAT

End Select


' Use the API call to change the toolbar

lngResult = SendMessage(lngHWND, _

TB_SETSTYLE, 0, lngStyle)
 

' Show the effects

tlb.Refresh

End Sub


    在 Form 装入时调用:

Private Sub Form_Load()

Call ToolbarStyle(Me.Toolbar1, 2)

' …

End Sub

    关于ToolBar 风格的说明:

    Office 风格的 Toolbar 是指在鼠标移动到 ICON 后,会出现边框。如我们在 VB5 中用的一样。而comctl的ToolBar是没有该效果的。

    IE4 风格的 Toolbar 可以在ICON 下面出现文字,如同 IE4 中的Toolbar 一样。(可能是反一下…… )


 
放一个Combo到Toolbar中 


    1. 放一个 ComboBox 到表单.

    2. 放一个 Toolbar?在表单.

    3. 增加下面的代码到 Form1 :

Private Sub Form_Load()

Dim btn As Button

Me.Show

Set btn = Toolbar1.Buttons.Add()

btn.Style = tbrSeparator

Set btn = Toolbar1.Buttons.Add()

btn.Style = tbrPlaceholder

btn.Key = "ComboBox"

btn.Width = 2000

With Combo1

.ZOrder 0

.Width = Toolbar1.Buttons("ComboBox").Width

.Top = Toolbar1.Buttons("ComboBox").Top

.Left = Toolbar1.Buttons("ComboBox").Left

End With

End Sub