HOWTO: Display Additional Buttons in Customize Toolbar Dialog

Last reviewed: September 26, 1997
Article ID: Q174087
The information in this article applies to:
  • Microsoft Visual Basic Learning, Professional, and Enterprise
Editions
   for Windows, version 5.0
  • Microsoft Visual Basic Standard, Professional, and Enterprise Editions,
       32-bit only, for Windows, version 4.0
    

    SUMMARY

    The Toolbar control that is provided with the Microsoft Windows Common Controls (COMCTL32.OCX) can be customized by users. The Customize Toolbar method is displayed if either:

    • the AllowCustomize property is set to True and the user double-
    clicks
       the Toolbar
    
       -or-
    
    
  • the Customize method of the Toolbar is invoked.

    By default, this dialog lists all of the buttons on the Toolbar in the "Toolbar Buttons" lists but lists only a Separator in the "Available Buttons" list. This article describes how you can display additional toolbar buttons in the "Available Buttons" list.

    MORE INFORMATION

    All of the buttons in the Buttons collection of a Toolbar control appear in the Customize Toolbar dialog. Buttons that are currently showing on the Toolbar appear in the "Toolbar Buttons" list and Buttons that have been removed from the Toolbar through customization appear in the "Available Buttons" list. To add additional buttons to the "Available Buttons" list, create your default toolbar, use the SaveToolbar method to save this setting, add the additional buttons at run-time, and then use RestoreToolbar to restore the "default" toolbar settings.

    Step-by-Step Example

    1. Start a new project.

    2. Reference the Microsoft Windows Common Controls (COMCTL32.OCX).

    3. Add a Toolbar and an ImageList to Form1.

    4. Add six images to ImageList1 with the following properties:

         Index          Key          Picture
         -----          ---          -------
         1              Bold
      
    ..\VB\Graphics\Bitmaps\Tlbr_w95\Bld.bmp
       2              Italic
    
    ..\VB\Graphics\Bitmaps\Tlbr_w95\Itl.bmp
       3              Underline
    
    ..\VB\Graphics\Bitmaps\Tlbr_w95\Undrln.bmp
       4              Copy
    
    ..\VB\Graphics\Bitmaps\Tlbr_w95\Copy.bmp
       5              Paste
    
    ..\VB\Graphics\Bitmaps\Tlbr_w95\Paste.bmp
       6              Cut
    
    ..\VB\Graphics\Bitmaps\Tlbr_w95\Cut.bmp

    1. Set the ImageList property of Toolbar1 to "ImageList1."

    2. Add three buttons to Toolbar1 with the following properties:

         Index        Key            Image
         -----        ---            -----
         1            Bold           Bold
         2            Italic         Italic
         3            Underline      Underline
      
         NOTE: The Toolbar contains only these three buttons because
      
    this is the
       layout of the "default" toolbar. The Copy, Paste, and Cut
    
    buttons will
       be added at run-time so that they will appear in the
    
    "Additional
       Buttons" list.
    
    

  • Add the following code to Form1:

          Private Declare Function RegOpenKey Lib "advapi32.dll" Alias
    
    _
             "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As
    
    String, _
             phkResult As Long) As Long
    
          Const HKEY_CURRENT_USER = &H80000001
    
          Private Sub Form_GotFocus()
    
             Me.Show
    
             'Check to see if the registry keys for the toolbar exists
             'If not, then save the initial toolbar settings
             Success = RegOpenKey(HKEY_CURRENT_USER, "MyApp", hKey)
             If Success <> 0 Then Toolbar1.SaveToolbar "Test",
    
    "MyApp", _
                "Toolbar1"
    
             'Add the toolbars you wish to see in the "Available
    
    Buttons" list
             Toolbar1.Buttons.Add , "Copy", , , "Copy"
             Toolbar1.Buttons.Add , "Paste", , , "Paste"
    
             'Restore the toolbar settings
             DoEvents
             Toolbar1.RestoreToolbar "Test", "MyApp", "Toolbar1"
             DoEvents
    
             bFormLoad = False
    
          End Sub
    
          Private Sub Form_Unload(Cancel As Integer)
    
             'When the form unloads, save the toolbar settings
             'to HKEY_CURRENT_USER\MyApp
             Toolbar1.SaveToolbar "Test", "MyApp", "Toolbar1"
    
          End Sub
    
    

  • Press the F5 key to run the application. Double-click Toolbar1 to
       display the Customize Toolbar dialog. Notice that the Cut,
    
    Copy, and
       Paste toolbars appear in the Additional Buttons list.
    
       NOTE: The SaveToolbar and RestoreToolbar methods used in this
    
    example
       write and read the registry entry
    
    HKEY_CURRENT_USER\MyApp\Toolbar1.
    Keywords          : vb432 VB4WIN vb5all vb5howto VBKBAX VBKBComp VBKBCtrl
    Version           : WINDOWS:4.0 5.0
    Platform          : WINDOWS
    Issue type        : kbhowto

  • ================================================================================


    THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

    Last reviewed: September 26, 1997
    © 1998 Microsoft Corporation. All rights reserved. Terms of Use.