Hola a todos.
me gusta darle aspectos diferentes a las aplicaciones hechas en vb pero escuche que hay una forma de cambiar la forma rectangular de los formularios, como lo hago alguien sabe?
gracias de antemano por cualquier ayuda.
| |||
como hago formularios que no sean rectangulares Hola a todos. me gusta darle aspectos diferentes a las aplicaciones hechas en vb pero escuche que hay una forma de cambiar la forma rectangular de los formularios, como lo hago alguien sabe? gracias de antemano por cualquier ayuda. |
| |||
Cita: Usa "Editar" en vez de postear otra réplica, por favor.
Iniciado por macape1102 perdon un formulario circular Para crear formularios no rectangulares debes usar la API. Supongo que quieres código ya hecho, pero eso no te lo voy a dar. |
| |||
no envidioso si sabes leer lo que escribi anteriormente le estoy ayudando a runbengx y pues no creas que eres el unico que sabes ya baja tus sumitos pues caes gordo sales cuidate mi estimado te mando saludos a y para quienes quieran saber como crear el formulario circular les pongo el codigo y no se ha tengan de este envidioso el foro consta de uta demasiados colaboradores que pueden ayudar y sin condiciones ni malos tratos byte |
| |||
Cita: Este tío es imbécil.
Iniciado por macape1102 no envidioso si sabes leer lo que escribi anteriormente le estoy ayudando a runbengx y pues no creas que eres el unico que sabes ya baja tus sumitos pues caes gordo sales cuidate mi estimado te mando saludos a y para quienes quieran saber como crear el formulario circular les pongo el codigo y no se ha tengan de este envidioso el foro consta de uta demasiados colaboradores que pueden ayudar y sin condiciones ni malos tratos byte Relee el post, estaba contestando a rubengx diciéndole que debía usar la API de Windows, no a ti, maldito egocéntrico. |
| ||||
Cita: Una pregunta... porque si tu respondes las inquietudes y problemas de bastantes post y haces muchas criticas constructivas porque el moderador no te designa colaborador?
Iniciado por MaxExtreme ![]() A mi me cae bien toda la gente, salvo cuando dicen paridas muy gordas :) ![]() |
| ||||
Que manera mas rastrera de chuparle a alguien las medias, cada dia me das mas verguenza ajena Developer9. Hacele un favor al mundo y deja de demostrar que sos un newbie.
__________________ ¡Peron cumple, Evita dignifica! VIVA PERON CARAJO |
| |||
Cita: Por supuesto. Fíjate en los Windows Media Players como ejemplo a la vista: Máscaras y demás.
Iniciado por jariza Hola, MaxEtreme, yo no quiero código ya hecho, sólo quiero saber por donde empezar. ¿El API me permitiría hacer formularios de cualquier geométria? Muchas gracias. (me he colado en el post ![]() No lo he investigado, pero si no me equivoco lo hacen pintando la aplicación "a mano". Al igual que esos juegos que se ejecutan y puedes lanzar cosas al escritorio y "romperle" ![]() |
| |||
Cita: Que será... será...
Iniciado por Developer9 Una pregunta... porque si tu respondes las inquietudes y problemas de bastantes post y haces muchas criticas constructivas porque el moderador no te designa colaborador? ![]() ![]() |
| |||
Cita:
Iniciado por loquillo7 hey MaxEtreme, nose si tengas algun ejmplito muy sencillo q tengas para empezar y poder guiarme nose si es mucho pedir pero pudieras mandarlo gracias Dije: Cita: Pero en cualquier caso, empieza como ya también dije por manejar las funciones gráficas de Windows antes de intentar hacer algo más complicado.
Iniciado por MaxExtreme No lo he investigado http://www.functionx.com/win32/ Extenso tutorial sobre ello (API gráfica de Windows). PD: Mi nick es MaxExtreme |
| |||
hola compañeros propuse este tema para resolver una incognita y para que otros se beneficien con las respuestas, no para que se entablen discuciones ya que ese no es el objetivo de un foro gracias a quienes de alguna forma intenteron ayudar y a los demás les propongo darle el uso adecuado a este foro, no les parece!!! saludos a todos |
| |||
Hola Rubengx Investiga un poco sobre las funciones gráficas de Windows, hay una función que se llama SetWindowRgn que, por ejemplo, usada con CreateEllipticRgn te genera un formulario eliptico. Tambien hay un programa que se llama VB Shaped Form Creator que te permite crear variadas formas para tu formulario y hasta con efectos animados, es buenisimo y es gratis. Pruebalo quizas te sirva |
| |||
shape si utilizar un ocx en un modulo: Option Explicit Public Declare Function GetPixel Lib "gdi32" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long) As Long Public Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long Public Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Public Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Public Declare Function ReleaseCapture Lib "user32" () As Long Public Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long Public Const RGN_OR = 2 Public Const WM_NCLBUTTONDOWN = &HA1 Public Const HTCAPTION = 2 Public Function MakeRegion(picSkin As PictureBox) As Long ' Make a windows "region" based on a given picture box' ' picture. This done by passing on the picture line- ' by-line and for each sequence of non-transparent ' pixels a region is created that is added to the ' complete region. I tried to optimize it so it's ' fairly fast, but some more optimizations can ' always be done - mainly storing the transparency ' data in advance, since what takes the most time is ' the GetPixel calls, not Create/CombineRgn Dim X As Long, Y As Long, StartLineX As Long Dim FullRegion As Long, LineRegion As Long Dim TransparentColor As Long Dim InFirstRegion As Boolean Dim InLine As Boolean ' Flags whether we are in a non-tranparent pixel sequence Dim hDC As Long Dim PicWidth As Long Dim PicHeight As Long hDC = picSkin.hDC PicWidth = picSkin.ScaleWidth PicHeight = picSkin.ScaleHeight InFirstRegion = True: InLine = False X = Y = StartLineX = 0 ' The transparent color is always the color of the ' top-left pixel in the picture. If you wish to ' bypass this constraint, you can set the tansparent ' color to be a fixed color (such as pink), or ' user-configurable TransparentColor = GetPixel(hDC, 0, 0) For Y = 0 To PicHeight - 1 For X = 0 To PicWidth - 1 If GetPixel(hDC, X, Y) = TransparentColor Or X = PicWidth Then ' We reached a transparent pixel If InLine Then InLine = False '--------Modificando estas cordenadas puedes hacer que se ajuste bien la imagen----- LineRegion = CreateRectRgn(StartLineX + 6, Y + 29, X, Y + 30) If InFirstRegion Then FullRegion = LineRegion InFirstRegion = False Else CombineRgn FullRegion, FullRegion, LineRegion, RGN_OR ' Always clean up your mess DeleteObject LineRegion End If End If Else ' We reached a non-transparent pixel If Not InLine Then InLine = True StartLineX = X End If End If Next Next MakeRegion = FullRegion End Function Y en el formulario Option Explicit Sub Cargar_Skin() 'Este codigo es el responsable de cargar y crear las trasparencias en la ventana. 'Se necesita el modulo para ke funcione el programa. 'El skin lo carga en el control picture, ke es el ke dara la imagen del formulario. Dim WindowRegion As Long picMainSkin.ScaleMode = vbPixels picMainSkin.AutoRedraw = True picMainSkin.AutoSize = True picMainSkin.BorderStyle = vbBSNone Me.BorderStyle = vbBSNone 'Carga el fichero BMP con la imagen deseada de la ventana. Set picMainSkin.Picture = LoadPicture("d:\Mis documentos\Visual Basic Proyectos\Formularios\shape sin ocx\Image1.bmp") 'Automaticamente se adapta la ventana al tamaño del skin. Me.Width = picMainSkin.Width Me.Height = picMainSkin.Height 'Crea la trasparencia usando el color ke linda con los limites de la imagen, 'en este caso el negro (puede ser otro color,depende el ke haga limite). WindowRegion = MakeRegion(picMainSkin) SetWindowRgn Me.hWnd, WindowRegion, True End Sub Private Sub Form_Load() Cargar_Skin End Sub Private Sub picMainSkin_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) 'Nos permite mover el formulario por la pantalla. ReleaseCapture SendMessage Me.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0& End Sub |
| ||||
Con esto tambien se puede cambiar la forma del form a redondeada o eliptica: SetWindowRgn Me.hwnd, CreateRoundRectRgn(0, 0, Me.Width \ 15, Me.Height \ 15, 50, 50), True 'Redondeado SetWindowRgn Me.hwnd, CreateEllipticRgn(0, 0, Me.Width \ 15, Me.Height \ 15), True 'eliptico Debes utilizar CreateRoundRectRgn, CreateEllipticRgn y SetWindowRgn...
__________________ ホルヘ・ラファエル・マルティネス・レオン |