■ コンソール画面の全画面化の方法は?
ぴょぴょ
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倍のチャンスも!
