開発環境:Windows XP Home SP2、VC++2003.NET(SDK)
コマンド・プロンプトで動くアプリケーションを作っています。
MSDN のコンソール画面制御を見てみましたが画面を全画面にする
APIが見つかりません。ALT+Enterキーで全画面に出来るのですが
プログラムから CUI アプリケーションの起動時に全画面にしたり、
終了時に元の状態に戻したいです。
何か良い方法ありますか?
なお、ショートカットを作って起動する方法なら実現できます。
これ以外の方法(プログラム)から実行したいです。
ヒントでも良いので一緒に考えて下さい。
よろしくお願い致します。
難しいですね
最大化するようなDOSコマンドも用意されてないようなので
http://support.microsoft.com/kb/124103/ja
を参考にコンソールウィンドウのハンドルを取得して
ShowWindow( hWnd, SW_MAXIMIZE );
てやるぐらいしか思いつきません
もともとCUIはウィンドウの概念自体がないものですからねぇ
そださんへ。
最大化ではなくて全画面です。
ちなみに紹介してくれたリンクは既に検索して見つけていました。
でも全画面の方法はかかれていないようです。
何か良い方法が浮かびましたら。
またお願い致します。
Oh, 難易度がグッとあがりましたね。
Alt+Enterと同じ効果が得られるかわかりませんが、
http://d.hatena.ne.jp/PRIKarinto/20060607/p1
を参考にコンソールウィンドウをポップアップウィンドウに変え、
SetWindowPosでデスクトップいっぱいに広げてみてはどうでしょう。
ポップアップウィンドウに変えなくても広げられますが
ウィンドウの枠の計算とかがやや面倒です。
探せばあるもんですね
http://mtamaki.cocolog-nifty.com/blog/2005/02/post_bbad.html
↑からリンクされてるこちらもご参考までに。
http://mureakuha.com/koodikirjasto/635
あまりかんばしくなさそうですが・・・
そださん。
ありがとうございます。
紹介してくれたリンクを読んだところ 9x 系なら WM_COMMAND の WPARAM に
57359 を送ることで全画面化に出来そうですね。
でも開発環境や実際に動かすのは XP です。
NT では使えないなら XP でも動かないんですよね。
どうもウインドのハンドルに ALT+Enter を SendInput() で送るしかないようですね。
この方法で行こうと思います。
ありがとうございました。
解決。
ぴょぴょさん
SendInput()でいけるならその方が無難かもしれませんね。
>でも開発環境や実際に動かすのは XP です。
>NT では使えないなら XP でも動かないんですよね。
リンク先読んでない方が誤解しないように注釈すると
XPで最大化する方法は一応リンク先に書いてあるんですが
高確率で失敗するとのことです。バグフィックスされてたりしないのかな〜
ツイート | ![]() |