DOSプロント
-
- 記事: 62
- 登録日時: 2016年9月24日(土) 15:35
DOSプロント
DOSプロントで、windowサイズを変更できないようにするにはどうすればいいばしょう?
Re: DOSプロント
どういったことを実現したいのですか?TISAproject さんが書きました:DOSプロントで、windowサイズを変更できないようにするにはどうすればいいばしょう?
あまり必要性がないと私は思いますが。
DOSプロントでwindowサイズを変更できないようにする方法は私もよくわかりません(というかかなりめんどくさそうです)。
これは余談ですがRADで作成したノーマルウインドウならばサイズ変更枠⇔細枠(windowサイズを変更できない)の切替はプログラム実行中でも割と簡単にできます。
-
- 記事: 62
- 登録日時: 2016年9月24日(土) 15:35
Re: DOSプロント
ほかのOSではわかりませんが、私はWindows10を使っています。
プロントを表示して、多くの文字をそこに出力させると、windowサイズを変えるときに、文字がどこかへ飛んでしまうのです。
プロントを表示して、多くの文字をそこに出力させると、windowサイズを変えるときに、文字がどこかへ飛んでしまうのです。
Re: DOSプロント
あまりおすすめしませんが、一応可能です。
GetConsoleWindow()というAPI関数でDOSプロンプトのウィンドウハンドルが得られます。あとは、RADツールなど自分で作ったウィンドウと同様に、サイズ変更や最大化を許可しないようスタイル変更を行います。
あまりおすすめしない理由は、DOSプロンプトのウィンドウが自分の作ったプログラム以外とも共有して使うもの、つまり自分専用のものではないからです。command.comやcmd.exeなどからコマンドとして実行してもらう想定のプログラムを作る場合には、やらないほうが好ましいです。
コード: 全て選択
#console
Declare Function GetConsoleWindow Lib "kernel32.dll" () As HWND
Dim hwndConsole As HWND
hwndConsole = GetConsoleWindow()
Dim style As Long
style = GetWindowLong(hwndConsole, GWL_STYLE)
style = (style And Not (WS_THICKFRAME Or WS_MAXIMIZEBOX)) Or WS_DLGFRAME
SetWindowLong(hwndConsole, GWL_STYLE, style)
SetWindowPos(hwndConsole, NULL, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOZORDER Or SWP_FRAMECHANGED)
Print "テスト"
あまりおすすめしない理由は、DOSプロンプトのウィンドウが自分の作ったプログラム以外とも共有して使うもの、つまり自分専用のものではないからです。command.comやcmd.exeなどからコマンドとして実行してもらう想定のプログラムを作る場合には、やらないほうが好ましいです。