コンソール画面の全画面化の方法は?

解決


ぴょぴょ  2008-02-12 05:58:06  No: 67474

開発環境:Windows XP Home SP2、VC++2003.NET(SDK)

コマンド・プロンプトで動くアプリケーションを作っています。
MSDN のコンソール画面制御を見てみましたが画面を全画面にする
APIが見つかりません。ALT+Enterキーで全画面に出来るのですが
プログラムから CUI アプリケーションの起動時に全画面にしたり、
終了時に元の状態に戻したいです。

何か良い方法ありますか?
なお、ショートカットを作って起動する方法なら実現できます。
これ以外の方法(プログラム)から実行したいです。
ヒントでも良いので一緒に考えて下さい。

よろしくお願い致します。


そだ  2008-02-12 08:00:28  No: 67475

難しいですね
最大化するようなDOSコマンドも用意されてないようなので
http://support.microsoft.com/kb/124103/ja
を参考にコンソールウィンドウのハンドルを取得して
ShowWindow( hWnd, SW_MAXIMIZE );
てやるぐらいしか思いつきません

もともとCUIはウィンドウの概念自体がないものですからねぇ


ぴょぴょ  2008-02-12 08:11:14  No: 67476

そださんへ。

最大化ではなくて全画面です。
ちなみに紹介してくれたリンクは既に検索して見つけていました。
でも全画面の方法はかかれていないようです。

何か良い方法が浮かびましたら。
またお願い致します。


そだ  2008-02-12 09:19:08  No: 67477

Oh, 難易度がグッとあがりましたね。

Alt+Enterと同じ効果が得られるかわかりませんが、
http://d.hatena.ne.jp/PRIKarinto/20060607/p1
を参考にコンソールウィンドウをポップアップウィンドウに変え、
SetWindowPosでデスクトップいっぱいに広げてみてはどうでしょう。

ポップアップウィンドウに変えなくても広げられますが
ウィンドウの枠の計算とかがやや面倒です。


そだ  2008-02-12 10:45:40  No: 67478

探せばあるもんですね
http://mtamaki.cocolog-nifty.com/blog/2005/02/post_bbad.html
↑からリンクされてるこちらもご参考までに。
http://mureakuha.com/koodikirjasto/635

あまりかんばしくなさそうですが・・・


ぴょぴょ  2008-02-12 19:18:57  No: 67479

そださん。
ありがとうございます。

紹介してくれたリンクを読んだところ 9x 系なら WM_COMMAND の WPARAM に
57359 を送ることで全画面化に出来そうですね。

でも開発環境や実際に動かすのは XP です。
NT では使えないなら XP でも動かないんですよね。
どうもウインドのハンドルに ALT+Enter を SendInput() で送るしかないようですね。
この方法で行こうと思います。

ありがとうございました。
解決。


そだ  2008-02-13 09:14:22  No: 67480

ぴょぴょさん
SendInput()でいけるならその方が無難かもしれませんね。

>でも開発環境や実際に動かすのは XP です。
>NT では使えないなら XP でも動かないんですよね。

リンク先読んでない方が誤解しないように注釈すると
XPで最大化する方法は一応リンク先に書いてあるんですが
高確率で失敗するとのことです。バグフィックスされてたりしないのかな〜


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加