Originally published December 2002 on DoItIn.net using VB7.0/2002. Updated for VB7.1 February 2005
Links for compiled demo versions, all required resources and source code are included at the end of this article.
We'll need a way to specify the zoom amount and instead of dealing with the annoyance of validating freeform text we'll let the user pick from values in a combo. Add a combobox to our toolbar is a piece of cake but it's a drag that so many controls don't automatically use the XP flat style with flyover color changing.
Add a new usercontrol named "svFlatDropDownCombo" and paste in the code from that page. Rebuild the project so the usercontrol is available for use and update the AddxxxToolbarButtons subs to stick an instance in between the down and up zoom buttons (note the added labels for spacing):
...
ctl = New Button
ctl.Name = "butZoomMinus"
ctl.Text = "zoom out"
ctl.Width = 23
CType(ctl, Button).FlatStyle = FlatStyle.Popup
CType(ctl, Button).ImageList = ilToolbars
CType(ctl, Button).ImageIndex = ToolbarIconIndexes.ZoomMinus
.Controls.Add(ctl)
'Combobox starts here
'spacers are just labels
ctl = New Label
ctl.Width = 2
CType(ctl, Label).BorderStyle = BorderStyle.None
.Controls.Add(ctl)
ctl = New svFlatDropDownCombo
ctl.Name = "svcboZooms"
ctl.Text = "0"
ctl.Width = 40
CType(ctl, svFlatDropDownCombo).DropBoxItemsClear()
CType(ctl, svFlatDropDownCombo).DropBoxItems.Add("5")
CType(ctl, svFlatDropDownCombo).DropBoxItems.Add("10")
CType(ctl, svFlatDropDownCombo).DropBoxItems.Add("20")
CType(ctl, svFlatDropDownCombo).DropBoxItems.Add("50")
CType(ctl, svFlatDropDownCombo).DropBoxItems.Add("75")
CType(ctl, svFlatDropDownCombo).DropBoxItems.Add("100")
CType(ctl, svFlatDropDownCombo).Text = "20"
.Controls.Add(ctl)
'spacers are just labels
ctl = New Label
ctl.Width = 2
CType(ctl, Label).BorderStyle = BorderStyle.None
tbrSource.Controls.Add(ctl)
'Combobox ends here
ctl = New Button
ctl.Name = "butZoomPlus"
ctl.Text = "zoom in"
ctl.Width = 23
CType(ctl, Button).FlatStyle = FlatStyle.Popup
CType(ctl, Button).ImageList = ilToolbars
CType(ctl, Button).ImageIndex = ToolbarIconIndexes.ZoomPlus
.Controls.Add(ctl)
...
F5 and test...