ページ 11

DOSプロント

Posted: 2016年10月14日(金) 18:27
by TISAproject
DOSプロントで、windowサイズを変更できないようにするにはどうすればいいばしょう?

Re: DOSプロント

Posted: 2016年11月09日(水) 19:38
by たかせ
TISAproject さんが書きました:DOSプロントで、windowサイズを変更できないようにするにはどうすればいいばしょう?
どういったことを実現したいのですか?
あまり必要性がないと私は思いますが。
DOSプロントでwindowサイズを変更できないようにする方法は私もよくわかりません(というかかなりめんどくさそうです)。

これは余談ですがRADで作成したノーマルウインドウならばサイズ変更枠⇔細枠(windowサイズを変更できない)の切替はプログラム実行中でも割と簡単にできます。

Re: DOSプロント

Posted: 2016年11月10日(木) 16:37
by TISAproject
ほかのOSではわかりませんが、私はWindows10を使っています。
プロントを表示して、多くの文字をそこに出力させると、windowサイズを変えるときに、文字がどこかへ飛んでしまうのです。

Re: DOSプロント

Posted: 2016年11月12日(土) 17:11
by イグトランス
あまりおすすめしませんが、一応可能です。

コード: 全て選択

#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 "テスト"
GetConsoleWindow()というAPI関数でDOSプロンプトのウィンドウハンドルが得られます。あとは、RADツールなど自分で作ったウィンドウと同様に、サイズ変更や最大化を許可しないようスタイル変更を行います。

あまりおすすめしない理由は、DOSプロンプトのウィンドウが自分の作ったプログラム以外とも共有して使うもの、つまり自分専用のものではないからです。command.comやcmd.exeなどからコマンドとして実行してもらう想定のプログラムを作る場合には、やらないほうが好ましいです。

Re: DOSプロント

Posted: 2016年11月13日(日) 11:07
by TISAproject
ご丁寧な説明ありがとうございます