Nueva pestaña

Moderador: ivancp

Preguntas y respuestas sobre programacion en Windows con Visual C++

Nueva pestaña

Notapor a343 » Mar Sep 06, 2011 12:16 pm

Hola,

Me gustaria hacer un dialogo, pero que al clikar sobre el boton se mostrara una serie de datos en vez de en una ventana, en una pestaña. Estoy usando la cinta ribbon de microsof. Te pongo una imagen de como es la aplicacion, para que te hagas una idea de lo que me gustaria hacer. ¿es posible hacerlo?¿si es asi.. podrias darme informacion sobre como hacerlo?

Imagen
a343
Usuario Muy Activo
Usuario Muy Activo
 
Mensajes: 93
Registrado: Lun Mar 07, 2011 7:35 am


Re: Nueva pestaña

Notapor ivancp » Vie Sep 09, 2011 9:43 am

Puedes obtener acceso a cualquier parte de tu aplicacion desde cualquier parte... no he visto tu codigo fuente pero entiendo que desde un evento en la clase CMainFrame quieres llenar de datos una pestaña en una ventana hija (si no es asi por favor dime).

La solucion es:
  1. Que en tu clase hija implementes una funcion para llenar los datos, por ejemplo la podemos llamar LoadData() si necesita algun parametro le agregas los que necesites, este metodo debe ser publico. Supongamos que el metodo LoadData pertenece a una clase CSDIChildWnd... ok hasta aqui todo bien.
  2. Ahora en la clase CMainFrame debes crear un miembro de tipo CSDIChildWnd *m_pVentanaHija, inicializada en NULL.
  3. Al momento de crearse la ventana CSDIChildWnd debemos apuntar la variable m_pVentanaHija hacia la nueva instancia creada:

    Código: Seleccionar todo
    1. ... CSDIChildWnd::OnCreate()

    2. {

    3.       ((CMainFrame*)AfxGetMainWnd())->m_pVentanaHija = this;

    4. }


  4. Ahora desde un evento de tu CMainFrame puedes invocar a la funcion LoadData:
    Código: Seleccionar todo
    1. ... CMainFrame::AlgunaFuncion()

    2. {

    3.       if(m_pVentanaHija != NULL)

    4.              m_pVentanaHija->LoadData();

    5. }

Es todo, se ve un poco complicado pero esa es la idea. Me cuentas como te fue.
Imagen @latindev | Mi Blog
Por favor lee las reglas del foro
Avatar de Usuario
ivancp
Colaborador
Colaborador
 
Mensajes: 680
Registrado: Jue Sep 06, 2007 12:58 pm


Re: Nueva pestaña

Notapor a343 » Sab Sep 10, 2011 3:47 am

Creo que no me referia a eso, puesto que con eso crearia una nueva ventana ¿no?.
Veamos.. te explicare un poco mas detallado como va este proyecto. El marco principal, es decir, lo que ves en la foto, lo hago a traves de una clase AdestView la cual deriva de CFormView, y esa parte que pone variables e informes en pestañas y debajo espacio de trabajo lo dibuja a traves de un formulario.
Código: Seleccionar todo
  1.  

  2. class CAdestView : public CFormView

  3. {

  4. protected: // Crear sólo a partir de serialización

  5.         CAdestView();

  6.         DECLARE_DYNCREATE(CAdestView)

  7.  

  8. public:

  9.         enum{ IDD = IDD_Adest_FORM };

  10. .

  11. .

  12. .

  13. }

  14.  


Hay un boton que viene por defecto al crear el proyecto que crea nuevas pestañas, al seguir el rastro de este boton te lleva al archivo ribbon.mfcribbon-ms, pero este boton crea las pestañas con ese peculiar aspecto, cosa que a mi no me hace falta.
He estado investigando y creo que mi idea seria hacer el proyecto basado en varios formularios, no solo en uno como hasta ahora, sino en algunos mas para que al darle al boton que sea, creara otra pestaña asi como la que hay, pero vacia, o con lo que yo le ponga en otro dialogo. Digamos que seria mostrar un formulario(sin botones, solo sacar texto, o mostrar una rejilla), en vez de en una vetana, tal como se haria en dialogos modales o no modales, en una pestaña.
Espero que me halla explicado un poco mejor, es dificil hacerlo por aqui, y mas sin enseñarte el codigo. :D

Muchas gracias por tu tiempo
a343
Usuario Muy Activo
Usuario Muy Activo
 
Mensajes: 93
Registrado: Lun Mar 07, 2011 7:35 am

Re: Nueva pestaña

Notapor ivancp » Sab Sep 10, 2011 9:06 pm

Entonces explicalo mediante un video, utiliza http://www.screenr.com/
Imagen @latindev | Mi Blog
Por favor lee las reglas del foro
Avatar de Usuario
ivancp
Colaborador
Colaborador
 
Mensajes: 680
Registrado: Jue Sep 06, 2007 12:58 pm

Re: Nueva pestaña

Notapor a343 » Lun Sep 12, 2011 6:01 pm

Hola,
Hice un pequeño video para que vieras el funcionamiento de la aplicacion
http://www.screenr.com/post

Lo primero cargo un fichero de datos, y se cargan todas las variables en una nueva pestaña, la principal se queda tal cual, luego muestro el valor de todas las variables en un dialogo, eso es lo que me gustaria que saliera en una pestaña tal como salen las variables. Despues hago un calculo estadistico y el resultado sale tambien en un dialogo, eso tambien me gustaria que saliera en una pestaña, no en una ventana diferente.
Al final del video muestro el boton que crea una nueva pestaña, pero la crea con todos los datos y aspecto anterior.
No se si comprendes bien lo que quiero hacer, es una aplicacion con varias "vistas", que si no me equivoco es a lo que se le llama MDI, pero en vez de en ventanas en pestañas.
En esta pagina da informacion de como hacer algo parecido, hace dos vistas diferentes pero en la misma ventana, basadas en dos dialogos (formularios) creados diferentes
http://www.elguille.info/mfc/mfc03.aspx

Espero que quede un poco mas claro, y me puedas ayudar. Si no es asi, dime que no entiendes bien.
Deberia qudarse algo parecido a esto (cada imagen en una pestaña):
http://www.portalesmedicos.com/images/publicaciones/0801_bioestadistica_medicos_SPSS/editor_datos_SPSS.jpg
http://screenshots.en.softonic.com/en/s ... spss-5.jpg

Gracias
a343
Usuario Muy Activo
Usuario Muy Activo
 
Mensajes: 93
Registrado: Lun Mar 07, 2011 7:35 am

Re: Nueva pestaña

Notapor a343 » Jue Sep 15, 2011 6:56 pm

http://www.megaupload.com/?d=O88YWW2V

Este ejemplo hace algo parecido a lo que me gustaria hacer
a343
Usuario Muy Activo
Usuario Muy Activo
 
Mensajes: 93
Registrado: Lun Mar 07, 2011 7:35 am

Re: Nueva pestaña

Notapor ivancp » Lun Sep 19, 2011 11:05 am

a343 escribió:Hola,
Hice un pequeño video para que vieras el funcionamiento de la aplicacion
http://www.screenr.com/post


Copiaste mal la direccion del video.
Imagen @latindev | Mi Blog
Por favor lee las reglas del foro
Avatar de Usuario
ivancp
Colaborador
Colaborador
 
Mensajes: 680
Registrado: Jue Sep 06, 2007 12:58 pm

Re: Nueva pestaña

Notapor a343 » Lun Sep 19, 2011 11:47 am

Bueno, es igual, ya se las opciones que tengo para crear las pestañas (creo).

Una de las opciones es hacerlo como el link que puse, derivando de la clase tabbedView,
Y la otra que estoy tanteando, es utilizar un tab control, en el dialogo en el cual esta basado la vista, pero como puse en el post nuevo, no se muy bien utilizarlo, puesto que al ejecutarlo solo se me muestra un contenedor en blanco como un edit control.
Tambien me dijero que utilizara PropertySheet, mejor que tab control, puesto que me seria mas facil.

Si me puedes dar informacion acerca de como usar, tabControl, o si es mas facil lo ultimo pues de lo ultimo.
a343
Usuario Muy Activo
Usuario Muy Activo
 
Mensajes: 93
Registrado: Lun Mar 07, 2011 7:35 am


    

Volver a Visual C++

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados