Home
Search
 
What's New
Index
Books
Links
Q & A
Newsletter
Banners
 
Feedback
Tip Jar
 
C# Helper...
 
XML RSS Feed
Follow VBHelper on Twitter
 
 
 
MSDN Visual Basic Community
 
 
 
 
 
TitleMake a resizable toolbox inside a form
DescriptionThis example shows how to make a resizable toolbox inside a form in Visual Basic 6. It uses drag and drop to let the user move the toolbox.
Keywordstoolbox, resizable toolbox, PictureBox
CategoriesControls, Software Engineering
 
(I don't remember who gave me this example, but the code mentions Sandia Software.)

Each toolbox is a make up of a PictureBox containing a caption label and a close button.

The main program uses API functions to give the PictureBoxes resizable borders (WS_THICKFRAME). The user can click and drag on these to resize the PictureBox automatically. When the user resizes the PictureBoxes, the program rearranges its label and button.

 
Private Sub Form_Load()
    Dim ret%, Style&, i As Integer

    For i = 0 To 1
        Style& = GetWindowLong(Form1.ToolBox(i).hwnd, _
            GWL_STYLE)
        Style& = Style& Or WS_THICKFRAME
        Style& = SetWindowLong(Form1.ToolBox(i).hwnd, _
            GWL_STYLE, Style&)
        ret% = SetWindowPos(Form1.ToolBox(i).hwnd, _
            Form1.hwnd, 0, 0, 0, 0, SWP_NOZORDER Or _
            SWP_NOSIZE Or SWP_NOMOVE Or SWP_DRAWFRAME)
    Next i
End Sub
 
If you click the button, the program hides its toolbox.
 
Private Sub Command1_Click(Index As Integer)
    'exit buttons for toolbars
    ToolBox(Index).Visible = False
End Sub
 
If you press the mouse down on the label, the program starts a drag so you can move the toolbox. The program lets you drop the toolbox on the form.
 
Private Sub Label1_MouseDown(Index As Integer, Button As _
    Integer, Shift As Integer, X As Single, Y As Single)
    Dim i As Integer

    'set header highlights
    'this highlight needs more work to make it work with
    ' resize
    For i = 0 To 1
        If i <> Index Then
            Label1(i).BackColor = INACTIVE_TITLE_BAR
        End If
    Next i

    ToolBox_GotFocus (Index)

    'set this so when dropped on form, form is in right mode
    Form1.ScaleMode = 1
    ToolBox(Index).ScaleMode = 1
    'drag
    DragDownx = (X + Label1(Index).Left)
    DragDowny = (Y + Label1(Index).Top)

    ToolBox(Index).Drag
End Sub
 
 
Copyright © 1997-2010 Rocky Mountain Computer Consulting, Inc.   All rights reserved.
  Updated