Resumen Mover controles de un frame a otro

>El primero: Como mover un objeto shape en tiempo de ejecucion...
Lo único que se me ocurre es que lo metas dentro de un control que actúe
como contenedor, por ejemplo un picture.

>El segundo: Tambien en tiempo de ejecucion. Dos frames y uno tiene un
>objeto picture y quisiera, pulsar en el objeto y arrastarlo al otro
>frame...
Acabo de hacer esto que creo que puede servirte de orientación. Puedes
mover el picture de uno al otro frame.
No estoy controlando que el picture se "salga" y parte de él quede fuera de
los frames. Eso te toca a tí ;-)
Estoy usando el tag del picture para almacenar dos valores para no declarar
dos variables globales al formulario. Seguro que esto es más eficiente pero
me apetecía hacerlo así (nadie esperfecto).

Tenemos dos frames (frame1 y frame2) y dentro del primero un picture box
(picture1).

Declaramos en el formulario :
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long,
ByVal hWndNewParent As Long) As Long

En el Picture1.MouseDown :
'guardo las coordenas de donde pinche
Picture1.Tag = Format$(X, "000000") + Format$(Y, "000000")
'inicio el arrastre
Picture1.Drag

En el Frame2_DragDrop:
Dim l As Long, x1 As Single, y1 As Single
'esto es por haber declarado las variables...
x1 = CSng(Left$(Source.Tag, 6))
y1 = CSng(Mid$(Source.Tag, 7, 6))
l = SetParent(Source.hWnd, Frame2.hWnd)
Source.Move X - x1, Y - y1

En el Frame1_DragDrop
Dim l As Long, x1 As Single, y1 As Single
x1 = CSng(Left$(Source.Tag, 6))
y1 = CSng(Mid$(Source.Tag, 7, 6))
l = SetParent(Source.hWnd, Frame1.hWnd)
Source.Move X - x1, Y - y1

Y yá está.

Un saludo.

_________________________________________________
José Rubí de la Vega
E-mail : jrubi@arrakis.es
WWW : http://www.arrakis.es/~jrubi
Podrás encontrar información sobre VB, la lista
VB-ESP y un resumen de los mensajes de la misma
ICQ # : 10939566



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com