|
|
Title | Clip lines to the boundary of a text string |
Keywords | clip, clipping, text, lines, path |
Categories | Graphics |
|
|
Use the BeginPath, EndPath, and SelectClipPath API functions to set the form's clipping path. Then draw the lines.
This program first fills the text with horizontal lines. Then it draws the text again, filling it with 1,000 random lines.
|
|
Private Sub Form_Load()
Const TXT = "Hello!"
Dim i As Long
Dim clr As Single
Dim dclr As Single
Dim ymin As Single
Dim hgt As Single
Dim wid As Single
AutoRedraw = True
' Select a big font.
Font.Name = "Times New Roman"
Font.Bold = True
Font.Size = 100
' Make the form big enough.
Width = TextWidth(TXT) + 240 + Width - ScaleWidth
Height = 2 * TextHeight(TXT) + 2 * 240 + Height - _
ScaleHeight
wid = ScaleWidth
' Make the clipping path.
BeginPath hdc
CurrentX = 120
CurrentY = 120
Print TXT
EndPath hdc
' Select the clipping path.
SelectClipPath hdc, RGN_COPY
' Draw some colored lines through the text.
dclr = 256 / (TextHeight(TXT) / 30)
clr = 0
For i = 120 To 120 + TextHeight(TXT) Step 30
Line (0, i)-Step(wid, 0), RGB(0, 0, clr)
clr = clr + dclr
Next i
' Do it again.
' Make the clipping path.
BeginPath hdc
CurrentX = 120
hgt = TextHeight(TXT)
ymin = hgt + 2 * 120
CurrentY = ymin
Print TXT
EndPath hdc
' Select the clipping path.
SelectClipPath hdc, RGN_COPY
' Draw some colored lines through the text.
For i = 1 To 1000
Line (Rnd * ScaleWidth, ymin + Rnd * hgt)-(Rnd * _
ScaleWidth, ymin + Rnd * hgt), QBColor(Int(16 * _
Rnd))
Next i
End Sub
|
|
|
|
|
|