Effect3D




'Inserire nel proprio modulo BAS, le seguenti dichiarazioni:

Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

'Disegna un bordo definito in RECT con tutti gli effetti possibili

Declare Function DrawEdge Lib "user32" (ByVal hdc As Long, qrc As RECT, ByVal edge As Long, ByVal grfFlags As Long) As Long
'Disegna il focus all'interno della struttura RECT

Declare Function DrawFocusRect Lib "user32" (ByVal hdc As Long, lpRect As RECT) As Long
'Parametro EDGE!

Public Const EDGE_BUMP = &H9&
Public Const EDGE_ETCHED = &H6&
Public Const EDGE_RAISED = &H5&
Public Const EDGE_SUNKEN = &HA&
'Parametro grfFlags!

Public Const BDR_INNER = &HC
Public Const BDR_OUTER = &H3
Public Const BDR_RAISED = &H5
Public Const BDR_RAISEDINNER = &H4
Public Const BDR_RAISEDOUTER = &H1
Public Const BDR_SUNKEN = &HA
Public Const BDR_SUNKENINNER = &H8
Public Const BDR_SUNKENOUTER = &H2
Public Const BF_ADJUST = &H2000
Public Const BF_BOTTOM = &H8
Public Const BF_BOTTOMLEFT = &H9
Public Const BF_BOTTOMRIGHT = &HC
Public Const BF_DIAGONAL = &H10
Public Const BF_FLAT = &H4000
Public Const BF_LEFT = &H1
Public Const BF_MIDDLE = &H800
Public Const BF_MONO = &H8000
Public Const BF_RIGHT = &H4
Public Const BF_SOFT = &H1000
Public Const BF_TOP = &H2
Public Const BF_TOPLEFT = &H3
Public Const BF_TOPRIGHT = &H6
Public Const BF_RECT = &HF
Per utilizzare gli effetti 3D occorre inserire nel codice del form, preferibilmente nell'evento form_paint, seguendo i seguenti step:
1) Definire una struttura RECT, in codice: DIM rc as RECT
2) Determinare la dimensione del rettangolo che conterra' l' effetto 3d (es. rc.Left = 10 : rc.Top = 100 : rc.Right = rc.Left + 220 : rc.Bottom = rc.Top + 100)
3) Chiamare la funzione DrawEdge passando come parametri: 1. hdc della form o della picrure box dove deve essere disegnato l' effetto; 2. la strutture RECT; 3. il tipo di EDGE (bordo) 4. i flag grafici
4) Se si desidera mostrare il focus in quel retangolo basta chiamare DrawFocusRect.










( effect3d.html )- by Paolo Puglisi - Modifica del 17/12/2023