Private Type TBBUTTONINFO
cbSize As Long
dwMask As Long
idCommand As Long
iImage As Long
fsState As Byte
fsStyle As Byte
cx As Integer
lParam As Long
pszText As String
cchText As Long
End Type
taking over almost any new application which has toolbars - and I can see why. I mean, it's got style, a simple look and adds an attractive side to your application. Visual Basic 5.0 didn't bring these controls in as a part of its new control set, but you can do it yourself with the old Common Controls Toolbar, and an API call.
1. Create a new project, and add the Common Controls ActiveX control to it.
2. Draw the Toolbar onto a form. Add your buttons.
3. Place the following into the General Declarations section:
Private Declare Function FindWindowEx Lib "user32" _
Alias "FindWindowExA" (ByVal hWndParent As Long, ByVal _
hWndChildWindow As Long, ByVal lpClassName As String, _
ByVal lpsWindowName As String) As Long
4. Add this Sub to the General Declarations Section as well:
Public Sub SetTBar97(TBar As Toolbar)
Dim lTBarStyle As Long, lTBarHwnd As Long
lTBarHwnd = FindWindowEx(TBar.hWnd, 0&, _
"ToolbarWindow32", vbNullString)
lTBarStyle = SendMessage(lTBarHwnd, TB_GETSTYLE, _
0&, 0&)
lTBarStyle = lTBarStyle Or TBSTYLE_FLAT
SendMessage lTBarHwnd, TB_SETSTYLE, 0, lTBarStyle
TBar.Refresh
End Sub
5. Add a Module and add this to it:
Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As _
Long, ByVal wParam As Long, lParam As Any) As Long
6. You can make the Toolbars Office 97 Style with:
SetTBar97 Toolbar1
Toolbar1, of course, being your toolbar control's name.