Creando un nuevo marco sin crear una nueva ventana.
En mi aplicación tengo cuatro botones, que al hacer clic invocan funciones particulares,
void optionFrame::searchUserClick(wxCommandEvent& event){
searchFrame* searchUser = new searchFrame(this);
searchUser->Show();
}
Estoy llamando al constructor y mostrándolo con su función miembro. El problema aquí es que se crea un nuevo marco pero también se crea una nueva ventana.
¿Hay alguna manera de evitar abrir una nueva ventana?
EDIT 1:
La estructura de mi aplicación es la siguiente:
Tengo un marco de nivel superior que se abre cuando la aplicación inicia, tengo algunos botones en ese marco que al hacer clic llevan al usuario a un nuevo marco, pero cuando veo en mi barra de tareas puedo ver 2 ventanas diferentes abiertas y alternar entre ellas.
Pero no quiero que el usuario pueda alternar entre esos marcos, quiero que el usuario pueda ver solo un marco a la vez.
davy.ai
Para evitar abrir una nueva ventana cada vez que se hace clic en un botón, puedes modificar tu código verificando si el “searchFrame” ya existe antes de crear una nueva instancia de él.
Una forma de hacer esto es agregar una variable miembro a tu clase “optionFrame” que contenga un puntero a la instancia de “searchFrame” y luego verificar si ha sido creado antes de llamar al constructor.
Aquí tienes un ejemplo de cómo se puede implementar esto:
Con esta modificación, el “searchFrame” solo se creará la primera vez que se hace clic en el botón, y clics posteriores mostrarán el “searchFrame” existente sin crear una nueva ventana.