Si conoces Windows C, ¡vamos!
Utilice MOSTRAR VENTANA (SW_HIDE/SW_SHOW). Esta es mi idea, puedes probarla.
Sólo algo que añadir.
Mostrar y ocultar controles de calendario es fácil de hacer. Aquí se explica cómo:
En la ventana de MFC. Coloque un control de calendario. Y defina una variable de control para ello. Escriba CMonthCalCtrl m_timer;
Luego, en la función de inicialización de la clase de ventana. Inicialice el control de calendario.
BOOL CMFCTimerDlg::OnInitDialog()
{
CDialog::OnInitDialog()
m_timer.ShowWindow(SW_HIDE);
return TRUE ;
}
Por ejemplo.
Por miedo a verse desordenado. m_timer.ShowWindow(SW_HIDE);
Para ocultar el control de calendario en su estado inicial, agregué este código. No es necesario eliminar nada en la función OnInitDialog. Simplemente agregue el código directamente.
Añadir un botón a la ventana. No es necesario configurar la identificación, simplemente haga doble clic en el botón. Cree una función de clic de botón.
void CMFCTimerDlg::OnButton1()
{
// TODO: agregue aquí el código del controlador de notificaciones de control
m_timer.ShowWindow (SW_ HIDE);
/// Ocultar el control del calendario.
}
Agregue ShowWindow(SW_HIDE); no olvide la variable de control de calendario anterior.
Luego, después de agregar el botón (también de hacer doble clic en el botón), cree una función para hacer clic en el botón.
void CMFCTimerDlg::OnOK()
{
// TODO: Agregue validación adicional aquí
m_timer.ShowWindow( SW_SHOW) ;
// CDialog: .OnOK();
}
Utilicé el botón Aceptar directamente. Si usa el botón Aceptar como yo, asegúrese de comentar CDialog::OnOK();.
El botón cancelar se mantiene solo. Déjalo ahí y no lo muevas. Tampoco lo borres. Esto es útil para salir. Ahora, se implementa esta sencilla función de mostrar y ocultar el calendario.
Un poco más complicado es utilizar un control ActiveX para ver la apariencia del propietario. Puede resultar un poco difícil de implementar. Si quieres saberlo.
Adicional:
Si escribes tu propio programa de calendario.
Así que hay dos métodos:
Primero, configure la ventana con el programa de calendario como ventana secundaria de la ventana principal.
En el mensaje WM_ONCREATE. Agregar
SubwindowObject.create(ID de ventana, esto);
SubwindowObject.showwindow(sw_hide);
Ocultar subventana
No. El segundo método es utilizar el método DoModal() mencionado anteriormente.
Del mismo modo escribe programas en la ventana.
Elija uno de los dos métodos anteriores y agregue un botón en la función de respuesta del botón. Tenga en cuenta aquí:
Si elige el primer método:
Agréguelo aquí. Subventana object.showwindow(sw_show);
Si elige el segundo método. Agregue el siguiente código:
ChildWindowObject.DoModal();