|
|
![]() |
|
||
|
|
|||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||
| Visual Basic
Window/Form Routines DrawText: Adding Title Text to the Fake TitleBar |
||
| Posted: | Thursday December 26, 1996 | |
| Updated: | Monday December 26, 2011 | |
| Applies to: | VB4-32, VB5, VB6, and VB3, VB4-16 with appropriate declarations | |
| Developed with: | VB4-32, Windows 95 | |
| OS restrictions: | None | |
| Author: | VBnet - Randy Birch | |
|
Related: |
DrawFocusRect: Simulating Non-Client Form Movement | |
| Prerequisites |
| Form and module from the project developed in DrawFocusRect: Simulating Non-Client Form Movement. |
|
|
This
code shows how to use the DrawText API to add a caption to the fake titlebar. |
| BAS Module Code |
|
|
| Place the following API declare code into the general declarations area of a bas module. If this is a one-form project, the declares below could be placed into the general declaration section of the form instead, with all Public references changed to Private. |
|
|
Option Explicit '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Copyright ©1996-2011 VBnet/Randy Birch, All Rights Reserved. ' Some pages may also contain other copyrights by the author. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Distribution: You can freely use this code in your own ' applications, but you may not reproduce ' or publish this code on any web site, ' online service, or distribute as source ' on any media without express permission. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Public Const COLOR_CAPTIONTEXT = 9
Public Const DT_CENTER = &H1 'centre left to right
Public Const DT_VCENTER = &H4 'centre top to bottom
Public Const DT_NOCLIP = &H100 'fast draw
Public Const DT_SINGLELINE = &H20 'single line only
Public Const DT_FLAGS = DT_SINGLELINE Or DT_CENTER Or DT_VCENTER Or DT_NOCLIP
Public Declare Function DrawText Lib "user32" _
Alias "DrawTextA" _
(ByVal hdc As Long, _
ByVal lpStr As String, _
ByVal nCount As Long, _
lpRect As RECT, _
ByVal wFormat As Long) As Long |
| Form Code |
|
|
| To the form code in the previous article, add the following code to the form: |
|
|
Option Explicit
Private Sub Form_Load()
Dim frameHeight As Long
Dim frameWidth As Long
Dim btnSize As Integer
Toolbar.ScaleMode = 3
'compute the width of the left and right dialog frame
frameHeight = GetSystemMetrics(SM_CYDLGFRAME) * 2
'compute the width of the top and bottom dialog frame
frameWidth = GetSystemMetrics(SM_CXDLGFRAME) * 2
'get the size of one of the square toolbar buttons
btnSize = SSCommand1(0).Width
'set the tool window size
Toolbar.Height = ((btnSize * 4) + _
frameHeight + _
Picture1.Height + 1) * Screen.TwipsPerPixelY
Toolbar.Width = ((btnSize * 3) + _
frameWidth) * Screen.TwipsPerPixelX
'Use active caption color for label's caption:
Picture1.ForeColor = GetSysColor(COLOR_CAPTIONTEXT)
'Choose a small font or whatever looks best on your system
Picture1.FontName = "Arial"
Picture1.FontSize = 7
Picture1.FontBold = False
Toolbar.ScaleMode = 1
'set the mock titlebar color to that of an active window
Picture1.BackColor = GetSysColor(COLOR_ACTIVECAPTION)
End Sub
'Add the following new code to the ToolBar form:
Private Sub Form_Resize()
'Change size of Picture1
Picture1.Width = Me.ScaleWidth
Toolbar.ScaleMode = 3
'Draw the word "Toolbar" into the fake picturebox titlebar
Dim rc As RECT
rc.Left = Picture1.Left
rc.Top = Picture1.Top
rc.Right = rc.Left + Picture1.Width
rc.Bottom = rc.Top + Picture1.Height
Picture1.Cls
Call DrawText(Picture1.hdc, "Toolbar", 7, rc, DT_FLAGS)
Toolbar.ScaleMode = 1
End Sub |
| Comments |
| The DrawText API takes the following parameters: DrawText (hdc, lpStr, nCount, lpRect As RECT, wFormat) hdc Picture1.hdc - Handle to the display context of the device to draw the text onto lpStr "Toolbar" - The text to print 7 - the number of characters in the text string lpRect As RECT rc - the rectangle for the output text to be drawn into wFormat DT_FLAGS - the DrawText flags. |
|
|
|
|
|
|||||
|
|||||
|
|
|||||
|
Copyright ©1996-2011 VBnet and Randy Birch. All Rights Reserved. |
![]() |