Tengo una aplicación MFC simple existente que el usuario especifica el archivo de entrada, el archivo de salida y luego el botón "Proceso". Me gustaría simplemente agregar la capacidad para que los archivos de entrada/salida sean parámetros de línea de comando. Pero, si existen, no quiero que aparezca la GUI. Solo quiero que se ejecute el "Proceso". Veo dónde puedo obtener los parámetros de línea de comandos (m_lpCmdLine), pero ¿cómo puedo omitir la visualización de la GUI? Si entro en la aplicación, va directamente a winmain.cpp y muestra la GUI sin entrar en ninguno de mis códigos.¿Cómo omito la GUI en la aplicación MFC si existen opciones de línea de comandos?
Respuesta
MFC configura una clase que se llamará la aplicación C [Nombre de su aplicación] (por ejemplo, CExampleApp) en [Su nombre de aplicación] .h/.cpp (por ejemplo, Ejemplo.h/.cpp) Aquí tendrá una función llamada "InitInstance" (otra vez auto generada por MFC). Si ha creado una aplicación basada en diálogo entonces tendrá un poco de código que se parece a esto en la función:
CExampleDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
En concreto, el "dlg.DoModal()" llamada llamará a su ventana de diálogo. Si evita eso, entonces la GUI nunca comenzará.
Si está utilizando una aplicación MDI, entonces tendrá algo de código como este:
// create main MDI Frame window
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pMainFrame;
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();
Esto crea y muestra su ventana principal. Evita esto y no se creará ninguna ventana. Sin embargo, DEBE devolver FALSO desde la función InitInstance o ingresará a la bomba de mensajes de la aplicación.
- 1. Haga una "GUI" de Linux en la línea de comandos
- 2. ¿Convertir una aplicación de línea de comandos en una aplicación Cocoa GUI en Mac OS X?
- 3. ¿Existen estándares para los modificadores y argumentos de la línea de comandos de Linux?
- 4. ¿Cómo pruebo la velocidad neta desde la línea de comandos en un servidor Linux (sin gui)?
- 5. python, unittest: hay una manera de pasar opciones de línea de comandos a la aplicación
- 6. Creando una GUI con MFC
- 7. LOAD DATA LOCAL, ¿Cómo omito la primera línea?
- 8. Salida a línea de comandos si se inició desde la línea de comandos
- 9. Mostrando progreso en la aplicación de línea de comandos
- 10. Opciones de línea de comandos necesarias en Python usando argparse
- 11. ¿Cómo puedo averiguar si un .EXE tiene opciones de línea de comandos?
- 12. Finalizar la aplicación de línea de comandos de Java correctamente
- 13. ¿Cómo omito la primera iteración de $ .each()?
- 14. Ejecutando la aplicación GUI remota en Powershell
- 15. Ejecutar aplicación Silex en la línea de comandos
- 16. ¿Cómo aplicar el desarrollo controlado por prueba para la aplicación GUI (VC MFC)?
- 17. Escribir interfaz gráfica de usuario para la aplicación de línea de comandos en Mac OS X
- 18. Cómo arrancar desde la línea de comandos
- 19. .NET C# Aplicación GUI Línea de comando
- 20. Cómo escribir en la consola en una aplicación GUI
- 21. Cómo borrar la última línea en la ventana de comandos
- 22. Detener una aplicación web tomcat desde la línea de comandos
- 23. Depuración aplicación de iPhone desde la línea de comandos
- 24. Opciones de línea de comandos para scripts * de IPython *?
- 25. * en la línea de comandos de linux
- 26. Comprobando si .NET está instalado desde la línea de comandos
- 27. Cómo realizar la validación de la aplicación iOS desde la línea de comandos
- 28. depuración C# en la línea de comandos
- 29. ¿Cuál es la mejor manera de escribir una aplicación de línea de comandos en Java?
- 30. Configuración de las opciones de pepino-jvm en Maven desde la línea de comandos
En mi caso, necesitaba el 'LoadFrame()', pero aunque no estaba llamando a 'ShowWindow()', el fotograma parpadearía. Descubrí que al llamar a 'CWinAppEx :: m_bLoadWindowPlacement = false;' justo antes de 'LoadFrame()' no se obtiene ventana ni parpadeo. – mateuscb