PICTUREBOX COM CANTOS ARREDONDADOS

RICATOM 18/09/2009 08:46:53
#323175
Bom dia colegas

Existem alguma maneira de deixar uma picturebox com os cantos arredondados?


Abs
ROBIU 18/09/2009 10:05:09
#323181
Resposta escolhida
Esse código deixa arredondado form, comand, textbox,picture...

Option Explicit

Private Declare Function CreateRoundRectRgn Lib _
[Ô]gdi32[Ô] (ByVal X1 As Long, ByVal Y1 As _
Long, ByVal X2 As Long, ByVal Y2 As Long, _
ByVal X3 As Long, ByVal Y3 As Long) As Long

Private Declare Function SetWindowRgn Lib [Ô]user32[Ô] _
(ByVal hWnd As Long, ByVal hRgn As Long, _
ByVal bRedraw As Boolean) As Long

Private Declare Function GetClientRect Lib [Ô]user32[Ô] _
(ByVal hWnd As Long, lpRect As Rect) As Long

Private Type Rect
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Sub Retangulo(m_hWnd As Long, Fator As Byte)
Dim RGN As Long
Dim RC As Rect
Call GetClientRect(m_hWnd, RC)
RGN = CreateRoundRectRgn(RC.Left, RC.Top, RC.Right, _
RC.Bottom, Fator, Fator)
SetWindowRgn m_hWnd, RGN, True
End Sub


Para chamar:

Private Sub Command1_Click()
Picture1.BackColor = &H808080 [ô]Apenas para destacar a cor
[ô]Coloca o formulário com os cantos arredondados
[ô]e fator 30 de área
Retangulo Me.hWnd, 30 [ô]Para o form
Retangulo Command1.hWnd, 10 [ô]Para o comand
Retangulo Picture1.hWnd, 80 [ô] para picture

End Sub
RICATOM 18/09/2009 10:12:57
#323182
Colega muito bom era o que precisava.

Será que funciona em qualquer versão do Windows?
ROBIU 18/09/2009 10:16:44
#323186
no 98 e XP funciona, no vista não testei
RICATOM 18/09/2009 10:34:31
#323188
Blz ROBIU

Peço que algum colega teste o código acima no Vista para que eu possa encerrar o tópico.

Obrigado
ROBIU 18/09/2009 11:03:15
#323191
as dlls user32 e gdi32 tambem estão no vista, então vai funcionar no vista tambem
RICATOM 18/09/2009 11:14:47
#323194
Minha preocupação na verdade era mais com o 98, mas como vc ja testou e funciona entao blz.

Muito obrigado colega
Tópico encerrado , respostas não são mais permitidas