2011-10-18 7 views
6

En Linux y al instalar paquetes, etc. Hay algunos instaladores que tienen una barra de progreso y una ventana de dos que muestra los archivos que se extraen, etc. ¿Cómo puedo agregar esta ventana a mis programas C++ Win32 para que pueda mostrar el tareas que estoy haciendo? No puedo encontrar ninguna documentación en MSDN.¿Es posible incrustar un símbolo del sistema en una aplicación win32?

Pregunta: ¿Cómo puedo agregar una ventana de consola (si eso es lo que se llama, seguro que se ve como uno) en mi programa para mostrar los detalles de la tarea que se realiza?

Aquí está una ventana con lo que estoy pidiendo .. (datos personales, así que borra los detalles:..]

enter image description here

Respuesta

6

No puede incrustar una ventana de consola real dentro de otra ventana (aunque un proceso de ventana puede tener una ventana de consola separada). Si bien parece una ventana de consola/símbolo del sistema, solo se trata de apariencias. Lo que quiere hacer es crear una subventana/control con características similares a una ventana de consola y luego redirigir la salida de la consola desde la (s) aplicación (es) que se está ejecutando para agregarla a esa subventana. Para obtener más información sobre cómo redirigir la salida de la consola en Windows, consulte http://support.microsoft.com/kb/190351.

2

Esa "dos ventana" es un control de edición regular: CreateWindow(ES_MULTILINE, EDIT, ... Sin embargo, tiene la fuente establecida en una de ancho fijo (Parece courier). Esto se hace enviando WM_SETFONT al control de edición.

2

@ user995048 dice "No puede incrustar una ventana de consola real dentro de otra ventana". ¡Pero "no puedo" es una palabra fuerte! Puedo ejecutar una computadora virtualizada completa en una ventana si lo deseo. :) Así que uno puede intuir razonablemente que hay maneras de hacer lo que dices.

Claro, es cierto que lo que ha visto son casi seguramente casos de redirección de salida en un widget personalizado, diseñado para imitar la apariencia simple de un terminal. Sin embargo ... si desea insertar la ventana de una aplicación dentro de otra, hay cosas que puede ver que pueden encajar. Existen métodos cooperativos como GtkPlug, por ejemplo:

http://developer.gnome.org/gtk/2.24/GtkPlug.html

Para capturar en realidad una que no está diseñado a cooperar ventana de aplicación y tirarlo en su aplicación sería más complicado. Pero es posible, al igual que las capturas de pantalla y las máquinas virtuales son posibles. Probablemente sea mejor evitar ese tipo de cosas a menos que realmente exista una causa para ello ...

+0

consejos justos por ahora. Gracias – iKlsR

Cuestiones relacionadas