Cargar una aplicación una sola vez en CDialog

Kaworu
15 de Abril del 2005
Hola, queria que mi aplicación solo se pueda iniciar una vez, si se vuelve a ejecutar, debe mostrar remitir a la aplicación ya abierta.

Esta todo más o menos ok, al cargar, busco si ya hay registrada la clase que creo con una estructura WNDCLASS, si es la primera vez, no es asi, la creo y la registro, el problema que creo que tengo y que por eso no funciona, es que despues, al dialogo principal hay que asignarle ese nombre de esa clase, esto esta puesto y es facil dentro del PreCreateWindow (CREATESTRUCT cs), pero he mirado y creo ke este mensaje solo se llama para si trabajas CFrameWork (single o multipli document).

Además en el programa no quiero que aparezca la title bar, lo cual no me permite hacer una busqueda por el nombre de ventana.

¿Alguien tiene alguna sugeréncia?

Muchas grácias

kaworu
15 de Abril del 2005
Ya esta,

PreCreateWindow no se llama en aplicaciones CDialog, y como no pongo la barra del sistema no se inicializa el caption de mi ventana, pero en el OnInitDialog puedo ponerle el nombre a la ventana aunque no se vea, SetWindowText (NOMBRE_VENTANA); y hacer un FindWindow por el nombre de la ventana y no de la clase CWnd::FindWindow (NULL, NOMBRE_VENTANA);.

Si lo haceis aseguraros de llamar a ::UnregisterClass (NOMBRE_CLASE, AfxGetInstanceHandle ()); antes de salir, en el ExitInstance (); por ejemplo, de lo contrario, aunque lo cerreis no podreis volver a abrirlo, como me ha pasado por cerrar a medio debug.

Hasta luego.