• Viernes 1 de Noviembre de 2024, 10:39

Autor Tema:  Mantener Un Dialogo Siempre Visible  (Leído 1665 veces)

Diodo

  • Moderador
  • ******
  • Mensajes: 658
    • Ver Perfil
    • http://www.solocodigo.com
Mantener Un Dialogo Siempre Visible
« en: Lunes 2 de Agosto de 2004, 14:51 »
0
Hola

Me gustaria mantener un dialogo siempre visible por encima de la ventana que lo llamo, alguien sabe como hacerlo??

Gracias :hola:

5erg10

  • Miembro activo
  • **
  • Mensajes: 42
    • Ver Perfil
Re: Mantener Un Dialogo Siempre Visible
« Respuesta #1 en: Martes 3 de Agosto de 2004, 20:57 »
0
Creo ke con hacerlo modal te debería valer. De esta forma, el dialogo aparecerá por encima de los demás y hasta ke no lo cierres o pulses algún botón no podrás volver a los de debajo. La forma de crearlos es la habitual, por ejemplo:

CDialog_prueba dlg_prueba(this);
r = dlg_prueba.DoModal ();

No sé si será éso lo ke buscas...
Welcome to the Jungle

Diodo

  • Moderador
  • ******
  • Mensajes: 658
    • Ver Perfil
    • http://www.solocodigo.com
Re: Mantener Un Dialogo Siempre Visible
« Respuesta #2 en: Miércoles 4 de Agosto de 2004, 19:59 »
0
Hola Sergio

Gracias por tu contestacion, pero me exprese mal, lo que yo queria es un dialogo no modal, que me deje acceder al Mainframe pero que este siempre superpuesto a este.Algo parecido a las toolbox

un saludo

KYO

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Mantener Un Dialogo Siempre Visible
« Respuesta #3 en: Jueves 5 de Agosto de 2004, 01:46 »
0
Bueno no me hagas mucho caso,pero  revisando por ciertas fuentes, me mencionaron que creara un hilo,  en donde llamara un la funcion

DoModal() por ejemplo:


AfxBeginThread (MyFuncion );

MyFuncion(LPARAM a)
{
 class b;
 b.DoModal();
}

como sabras no se conozco mucho de los hilos, yo lo voy a probar en la noche, por que solo me dijeron la idea.

BYE.

juanin

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Mantener Un Dialogo Siempre Visible
« Respuesta #4 en: Sábado 7 de Agosto de 2004, 00:50 »
0
:hola:A ver, yo lo he intentado y no me da ningun problema. Me he creado un proyecto con el asistente (he probado con MDI y SDI) y luego he cambiado el dialogo "About" para que fuese no modal. Lo unico que he hecho es crear una variable miembro de tipo CAboutDlg en la clase principal del proyecto (la que termina en App). Luego, en OnAppAbout, quitas la declaracion de la variable porque ahora es global para toda la clase, y cambias el DoModal por el Create(IDD_ABOUTBOX). Despues tienes que poner ShowWindow aunque esto no hace falta si en las propiedades del dialogo le pones que sea visible. Y funciona. Mientras no le des a OK no se esconde la ventana, y en la principal puedes tocar lo que quieras. :comp:
Lo unico, que para volver a abrir el dialogo despues de cerrarlo hay que cambiar una cosa: hay que sobreescribir ek metodo OnOk() de la clase CAboutDlg() y poner DestroyWindow(). Esto porque el metodo original llama a otra funcion que solo oculta la ventana, pero no la elimina; despues cuando vuelves a intentar crearla casca la aplicacion porque la ventana ya existe.