Iniciar Sesión

Ver la Versión Completa : [Duda] Tab Control y como funciona


Kuk
5 de febrero de 2015, 10:34
Amigos, quien sabe como se apodera cada pestaña de los controles puestos en ella. El handle (o lo que es lo mismo el hwnd) es unico para todo el Tab, o sea que con GetParent y SetParent no se podria asignar un control a una pestaña en concreto...

A ver si alguien sabe resolverme esta duda!

:hi:

Hrmcobol
5 de febrero de 2015, 23:06
Disculpa Kuk, no entiendo que quieres hacer, no uso el TabControl, pero me gustaria usarlo.

Kuk
5 de febrero de 2015, 23:09
Disculpa Kuk, no entiendo que quieres hacer, no uso el TabControl, pero me gustaria usarlo.

Lo que quiero hacer es asignar dinamicamente los controles que quiera a una u otra pestaña del Tab. Por ejemplo si tiene 3 pestañas, quiero "mover" el CmListView1 del Form a la pestaña 2 del tab. :fuma:

Hrmcobol
6 de febrero de 2015, 20:27
Kuk, primero no sabia que se podía mover un control de form a otro, cosa que aparentemente se puede. Pero bien dime cual seria la utilidad de mover un control de un lado a otro?.

Saludos

PD.: Interesante tema

Kuk
6 de febrero de 2015, 22:15
Kuk, primero no sabia que se podía mover un control de form a otro, cosa que aparentemente se puede. Pero bien dime cual seria la utilidad de mover un control de un lado a otro?.

Saludos

PD.: Interesante tema

A ver como lo explico. Por WinAPI se puede hacer muchas cosas, entre ellas asignar ventana/control padre de (casi) cualquier otro control. Con esto he logrado hasta simular una ventana MDIForm.

Cada control (o casi cada) tiene una propiedad llamada HANDLE o HWND la cual es unica e identifica el control a nivel interno. Por llamada de WinAPI "SetParent" se puede hacer que un control se haga el padre del otro. Es el principio de como cada control puesto en un Form se mantiene dentro de el, se mueve junto a el etc.

En el caso del TabControl, su HWND es unico y no uno por pestaña, pero aun asi cada control que pones en cada pestaña se queda en su pestaña. O sea que la pestaña de alguna manera se hace padre del control que has puesto en ella...

No se si me he explicado claramente pero vamos, es lo que quiero entender :shok::D

Hrmcobol
7 de febrero de 2015, 02:07
Buenísimo lo que dices, es cierto el form(que es un control) es padre de los controles que hay en el, de alguna manera los controles del tab están subordinados a la pestaña que los contiene, de alguna manera HANDLE se debe poder subordinar a las pestañas del Tab. Es lo único que se me ocurre.

Saludos y Siga Participando Amigo Que Seguro Le Encontraras La Vuelta.

:playa:

Kuk
30 de diciembre de 2015, 22:45
Amigos, después de hurgar por la MSDN, he obtenido la respuesta. Aparentemente, el TabControl estándar no es "Container", es decir no puede contener otros controles. A diferencia de lo dicho, el CmTab de PowerCOBOL sí es un "Container".

El TabControl (el TabStrip también) simplemente gestionan sea el zOrder de controles "Container" puestos unos encima de los otros, sea crean y destruyen ventanas.

Hrmcobol
30 de diciembre de 2015, 23:17
Hola Amigo KUK, me podrías aclarar un poco el tema.
Saludos y un Excelente 2016 !!