Title | Make a picture box with a hole in it |
Description | This example shows how to make a picture box with a hole in it in Visual Basic 6. It uses the API region functions to make a region with a hole in it and assigns the region to the PictureBox. |
Keywords | PictureBox, shape, region, SetWindowRgn, shaped PictureBox |
Categories | API, Controls, Graphics |
|
Private Sub Form_Resize()
Const RGN_DIFF = 4
Dim outer_rgn As Long
Dim inner_rgn As Long
Dim combined_rgn As Long
Dim wid As Single
Dim hgt As Single
Dim border_width As Single
Dim title_height As Single
If WindowState = vbMinimized Then Exit Sub
With picBox
' set the picture box to be measured in pixels
.ScaleMode = vbPixels
' Create the regions.
wid = .Width
hgt = .Height
outer_rgn = CreateRectRgn(0, 0, wid, hgt)
border_width = (wid - .ScaleWidth) / 2
title_height = hgt - border_width - .ScaleHeight
inner_rgn = CreateEllipticRgn( _
border_width + .ScaleWidth * 0.1, _
title_height + .ScaleHeight * 0.1, _
.ScaleWidth * 0.9, .ScaleHeight * 0.9)
' Subtract the inner region from the outer.
combined_rgn = CreateRectRgn(0, 0, 0, 0)
CombineRgn combined_rgn, outer_rgn, _
inner_rgn, RGN_DIFF
' Restrict the picture box to the region.
SetWindowRgn .hWnd, combined_rgn, True
End With
End Sub
|