Página 1 de 1
Como Crear borde ovalado en ventana
Publicado: 06 Jun 2014, 16:57
por yasmany
Hola todos como algunos sabrán estoy desarrollando un pequeño software, pero resulta que quiero cambiar la apariencia de los bordes de rectangulados a semiOvalados.
¿Como lograría aquello?
Esta es la interfaz.
Re: Como Crear borde ovalado en ventana
Publicado: 06 Jun 2014, 17:18
por Dany
Hola.
Código: Seleccionar todo
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$GUI_Main = GUICreate("My GUI") ; will create a dialog box that when displayed is centered
GUISetState(@SW_SHOW)
_GuiRoundCorners($GUI_Main, 100, 0, 40, 40, 0)
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
; Round corners function
; Last optional parameter $BotCrnrs - Default 1 (True) shows bottom rounded corners
; - 0 (False) shows square bottom corners
Func _GuiRoundCorners($h_win, $i_x1, $i_y1, $i_x3, $i_y3, $BotCrnrs = True); thanks gafrost
Local $XS_pos, $XS_ret, $XS_ret2
$XS_pos = WinGetPos($h_win)
If Not $BotCrnrs Then $ret2 = DllCall("gdi32.dll", "long", "CreateRectRgn", "long", _
$i_x1, "long", $XS_pos[3]-$i_y3, "long", $XS_pos[2]-1, "long", $XS_pos[3])
$XS_ret = DllCall("gdi32.dll", "long", "CreateRoundRectRgn", _
"long", $i_x1, _
"long", $i_y1, _
"long", $XS_pos[2], _
"long", $XS_pos[3], _
"long", $i_x3, _
"long", $i_y3)
If Not $BotCrnrs Then DllCall("gdi32.dll", "long", "CombineRgn", "long", $XS_ret[0], "long", $XS_ret[0], _
"long", $ret2[0], "int", 2)
If $XS_ret[0] Then
$XS_ret = DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $XS_ret[0], "int", 1)
EndIf
EndFunc ;==>_GuiRoundCorners
Saludos
Re: Como Crear borde ovalado en ventana
Publicado: 06 Jun 2014, 17:28
por yasmany
Muchas Gracias Dany. habrá como hacer para todas las esquinas.
Sucede que este code recorta la ventana hacia la derecha
Existirá algo que solo moldee las esquinas?
Re: Como Crear borde ovalado en ventana
Publicado: 06 Jun 2014, 18:51
por Dany
Con ese mismo código se puede revisarlo bien.
saludos
Re: Como Crear borde ovalado en ventana
Publicado: 06 Jun 2014, 20:19
por yasmany
Disculpa por la torpeza
, antes que comentes iba a decir que el código funciona muy bien, gracias.
Saludos...