2011-10-18 5 views
6

linuxやパッケージなどのインストール時には、プログレスバーと抽出されたファイルを表示するdosウィンドウを持つインストーラがあります。このウィンドウをC++ Win32プログラムに追加するにはどうすればいいですか?仕事はやってる?私はMSDNでドキュメントを見つけることができません。win32アプリケーションにコマンドプロンプトを埋め込むことはできますか?

質問:どのように私は行われて手元の作業の詳細を示すために、私のプログラムでコンソールウィンドウ(つまり、そのと呼ばれるものだ場合は、必ずいずれかのように見える)を追加することができますか?

ここで私が求めています何で窓..です(個人情報私は詳細を消去:。]

enter image description here

答えて

6

実際のコンソールウィンドウを別のものに埋め込むことはできません。ウィンドウ(ただし、ウィンドウされたプロセスは別のコンソールウィンドウを持つことができます)。コンソールウィンドウ/コマンドプロンプトのように見えますが、それは外見上の問題です。あなたがしたいことは、コンソールウインドウと同様の特性を持つサブウインドウ/コントロールを作成して、実行中のアプリケーションからのコンソール出力をそのサブウインドウに追加するようにリダイレクトすることです。 Windowsでコンソール出力をリダイレクトする方法の詳細については、http://support.microsoft.com/kb/190351を参照してください。

0

私が提供される解決策があると思います。この http://www.codeguru.com/cpp/misc/misc/article.php/c277/ のリンクをお試しください。 何年も前に試してみましたが、うまくいきましたが、新しいバージョンのWindowsでも試していません。

+0

Gus。 Windows 7では動作しません。返信いただきありがとうございます。 – iKlsR

2

"dos window"は通常の編集コントロールです:CreateWindow(ES_MULTILINE, EDIT, ... しかし、フォントは固定幅フォントに設定されています(courierのように見えます)。これは、WM_SETFONTを編集コントロールに送信することで実行されます。

2

@ user995048は、「別のウィンドウ内に実際のコンソールウィンドウを埋め込むことはできません」と言います。しかし、 "できません"は強い言葉です!もし私が望むならば、私はウィンドウ内で仮想化されたコンピュータ全体を走らせることができます。 :)あなたが言うことをやり遂げる方法があるということは、かなり合理的に直感することができます。

確かに、あなたが見たことは、端末の単純な外観を模倣するように設計されたカスタムウィジェットへの出力リダイレクトのケースがほぼ確実だということです。しかし、あるアプリケーションのウィンドウを別のウィンドウに埋め込む場合は、どのアプリケーションが適しているかを調べることができます。協同組合の方法は、例えば、GtkPlugのように存在します。

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

実際に設計されていない対連携アプリのウィンドウを、アプリでそれを投げるをキャプチャするにはトリッキーになります。しかし、スクリーンキャプチャと仮想マシンが可能な場合と同様に可能です。おそらくそれが原因でない限り、そのようなことを避けるのが最もよいでしょう。

+0

今のところ公正なアドバイス。ありがとう – iKlsR

関連する問題