Hola Estimados:
Tantas Lunas!... estaba retomando un proyecto antiguo y me topé con un detalle que en esa ocasión dejé pasar, y es que un Borde de un UC, creado con RoundRect no cambia de color en tiempo de ejecución, pero si puedo hacerlo en tiempo de diseño, les agradecería un monton si los más avezados en APIs me pudieran decir en que estoy fallando:
'--Seccion APIs--
Private Declare Function DeleteObject Lib "Gdi32" (ByVal hObject As Long) As Long
Private Declare Function SetWindowRgn Lib "User32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Long) As Long
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 RoundRect Lib "Gdi32" (ByVal hDC As Long, 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
'--Sub crea Bordes--
Private Sub DrawBorders()
Dim Rgn As Long
With UserControl
Rgn = CreateRoundRectRgn(0, 0, .Width, .Height, 0, 0)
SetWindowRgn .hwnd, Rgn, True
DeleteObject Rgn
.DrawWidth = 2
.ForeColor = m_BorderColor
RoundRect .hDC, 0, 0, .ScaleWidth, .ScaleHeight, 0, 0
End With
End Sub
'--Propiedades UC--
Public Property Get BorderColor() As OLE_COLOR
BorderColor = m_BorderColor
End Property
Public Property Let BorderColor(ByVal NewBorderColor As OLE_COLOR)
m_BorderColor = NewBorderColor
PropertyChanged "BorderColor"
DrawBorders
End Property
Como les decía, si cambio la Propiedad BorderColor en Diseño, si lo hace, pero al testearlo en Ejecución no pasa nada, mantiene el color asignado durante el diseño...
Agradecido de antemano, un abrazo a todos los emblemáticos del mejor Foro VB6!