2011-10-18 5 views
6

Linux'ta ve paketler yüklerken vs. İlerleme çubuğu ve ayıklanan dosyaları gösteren bir dos penceresi olan bazı yükleyiciler vardır. Bu pencereyi C++ Win32 programlarına nasıl ekleyebilirim? görevleri yapıyorum? MSDN'de herhangi bir belge bulamıyorum.Win32 uygulamasında bir komut istemi yerleştirmek mümkün mü?

Soru: (yani onun denilen buysa emin benziyor,) Nasıl yapılıyor eldeki görev ayrıntılarını göstermek için programda bir konsol penceresi ekleyebilirim? İşte

i (kişisel bilgi yüzden ayrıntıları sildim .. soruyorum ne bir penceredir.:.]

enter image description here

cevap

6

Başka bir pencerenin içine gerçek bir konsol penceresi yerleştiremezsiniz. penceresi (pencereli bir işlem ayrı bir konsol penceresine sahip olsa da). Bir konsol penceresi/komut istemi gibi görünüyor olsa da, bu sadece bir görünüm meselesi. Yapmak istediğiniz şey, bir konsol penceresi ile benzer özelliklere sahip bir alt pencere/denetim oluşturmak ve daha sonra konsol çıktısını bu alt pencereye eklemek için çalıştırılan uygulama (lar) dan yeniden yönlendirmektir. Windows'da konsol çıktısının nasıl yönlendirileceği hakkında daha fazla bilgi için bkz. http://support.microsoft.com/kb/190351.

2

Bu "dos penceresi" düzenli bir düzenleme denetimi: CreateWindow(ES_MULTILINE, EDIT, ... Ancak, bir sabit genişlikli bir (örneğin, Kurye gibi görünüyor) olarak ayarlanmış yazı tipine sahip. Bu düzenleme denetimine WM_SETFONT göndererek yapılır.

2

@ user995048, "Başka bir pencerenin içine gerçek bir konsol penceresi yerleştiremezsiniz" yazıyor. Ama "yapamaz" güçlü bir kelimedir! Sanallaştırılmış bir bilgisayarı istediğim bir pencerede çalıştırabilirim. :) Öyleyse, söylediklerinizi yapmanın yolları olduğu oldukça makul bir şekilde sezilebilir.

Elbette gördüğünüz şey, bir terminalin basit görünümünü taklit etmek üzere tasarlanmış özel bir pencere içine neredeyse yönlendirilmiş çıktı yönlendirmesidir. Ancak ... bir uygulamanın penceresini bir diğerine gömmek isterseniz, içine girebileceğiniz şeylere bakabilirsiniz. Kooperatif yöntemler örneğin GtkPlug gibi vardır:

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

aslında yakalamak için bir-tasarlanmamış-to-işbirliği uygulamanın pencere ve yanıltıcıdır olacağını uygulamanızda atmak. Ancak, ekran yakalamaları ve sanal makineler mümkün olduğu gibi. Muhtemelen bu tür bir şeyden kaçınmak için en iyisi, aslında bunun için bir neden olmadığı sürece ...

+0

fuar tavsiyesi. Teşekkürler – iKlsR