Private Declare Function DrawEdge Lib "user32" (ByVal hDC As Long, qrc As RECT, ByVal Edge As Long, ByVal grfFlags As Long) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Const BDR_RAISEDOUTER = &H1
Private Const BDR_SUNKENOUTER = &H2
Private Const BDR_RAISEDINNER = &H4
Private Const BDR_SUNKENINNER = &H8
Private Const EDGE_RAISED = (BDR_RAISEDOUTER Or BDR_RAISEDINNER)
Private Const EDGE_SUNKEN = (BDR_SUNKENOUTER Or BDR_SUNKENINNER)
Private Const EDGE_ETCHED = (BDR_SUNKENOUTER Or BDR_RAISEDINNER)
Private Const EDGE_BUMP = (BDR_RAISEDOUTER Or BDR_SUNKENINNER)
Private Const BF_LEFT = &H1
Private Const BF_TOP = &H2
Private Const BF_RIGHT = &H4
Private Const BF_BOTTOM = &H8
Private Const BF_RECT = (BF_LEFT Or BF_TOP Or BF_RIGHT Or BF_BOTTOM)
Dim ButtonBorder As Long ' picture variable to store Edge type
' Draw picture with edges at startup
Private Sub Form_Load()
DOWN.AutoRedraw = False
ButtonBorder = EDGE_RAISED ' draw "button edge" around picture
End Sub
' This will make our picturebox look like a PRESSED button
Private Sub DnPressed()
ButtonBorder = EDGE_SUNKEN
DOWN.Refresh
End Sub
' This will make our picturebox look like a RELEASSED button
Private Sub DnReleased()
ButtonBorder = EDGE_RAISED
DOWN.Refresh
End Sub
' Simulate Command_MouseDown() & command_MouseUp()
Private Sub DOWN_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Call DnPressed
End Sub
Private Sub DOWN_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Call DnReleased
End Sub
Private Sub DOWN_DblClick()
Call DnPressed
End Sub
' Repaint drawn edges around our picture
Private Sub DOWN_Paint()
Dim r As RECT
DOWN.Cls
r.Bottom = DOWN.ScaleHeight
r.Right = DOWN.ScaleWidth
DrawEdge DOWN.hDC, r, ButtonBorder, BF_RECT
End Sub
'**********************************************************************************
'**********************************************************************************
'**********************************************************************************
' Arron Young's code to center picture inside a picturebox THAT NEED'S TO BE INTEGRATED WITH THE ABOVE CODE
Private Sub CenterPicture()
With DOWN
DOWN.Line (0, 0)-(.ScaleWidth, .ScaleHeight), .BackColor, BF
.PaintPicture .Picture, (.ScaleWidth - .ScaleX(.Picture.Width, vbHimetric, .ScaleMode)) / 2, _
(.ScaleHeight - .ScaleY(.Picture.Height, vbHimetric, .ScaleMode)) / 2
End With
End Sub
'**********************************************************************************
'**********************************************************************************
'**********************************************************************************