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

[Visual C++ Q & A 掲示板] [過去ログの一覧]


ぴょぴょ 2008/02/11(月) 20:58:06 <初心者>
開発環境:Windows XP Home SP2、VC++2003.NET(SDK)

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

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

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

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

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

ぴょぴょ 2008/02/11(月) 23:11:14 <初心者>
そださんへ。

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

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

そだ 2008/02/12(火) 00:19:08 <初心者>
Oh, 難易度がグッとあがりましたね。

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

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

そだ 2008/02/12(火) 01:45:40 <初心者>
探せばあるもんですね
http://mtamaki.cocolog-nifty.com/blog/2005/02/post_bbad.html
↑からリンクされてるこちらもご参考までに。
http://mureakuha.com/koodikirjasto/635

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

ぴょぴょ 2008/02/12(火) 10:18:57 <初心者>
[[解決]]

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

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

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

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

そだ 2008/02/13(水) 00:14:22 <初心者>
ぴょぴょさん
SendInput()でいけるならその方が無難かもしれませんね。

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

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

毎週金曜日はポイント最大3倍!さらに4倍のチャンスも!

Programming Library