Ayuda con ActiveX/OCX

Claudia
08 de Diciembre del 2004
Hola a todos
Estoy intentando realizar un control ActiveX/OCX en VB6 para que los botones dejen de tener aspecto rectangular y puedan adoptar otras formas (circulares, triangulares, etc). El problema está en que debo \"copiar\" en mi control el fragmento del Formulario en el que se coloque este, sea cual sea, mediante una llamada a la API Bitblt. Esa llamada debe hacerse en el evento RESIZE. Ahora bien, mi control no puede (porque no sé cómo hacerlo) averiguar en qué posición del Formulario se ha colocado, es decir, no permite las propiedades LEFT y TOP. Alguien sabría cómo hacerlo. Estaré eternamente agradecida a quien me ayude.

P.D. la llamada la realizo en USERCONTROL_RESIZE así: r=BitBlt (UserControl.hDC, 0, 0, UserControl.Width, UserControl.Height, UserControl.Parent.hDC, *, *, SRCCOPY)
¿Qué puedo poner en lugar de los asteriscos (*)?
Gracias a todos

mvallejos
08 de Diciembre del 2004
Claudia

Podés usar la propiedad Container(contenedor) del objeto y hacer un PaintPicture de la propiedad Image del contenedor (formulario) usando las coordenadas de tu botón para capturar la imagen que está debajo y pegarla dentro de tu botón.
Otra de las posibilidades es recortar tu botón a la forma que desees, fijate en este link
www.info.elguille.net

Espero que sirva

Saludos desde Argentina

en?
08 de Diciembre del 2004
Claudia, prueba con otra función de la API, 'GetWindowPlacement'

Aquí hay un ejemplo de uso: http://www.mentalis.org/apilist/3E74F17FD8F3AC14AB30329DDDC08905.html

--
Un saludo.