DOSプロント

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
TISAproject
記事: 62
登録日時: 2016年9月24日(土) 15:35

DOSプロント

#1 投稿記事 by TISAproject »

DOSプロントで、windowサイズを変更できないようにするにはどうすればいいばしょう?
たかせ
記事: 215
登録日時: 2006年2月05日(日) 17:10
お住まい: 東京都

Re: DOSプロント

#2 投稿記事 by たかせ »

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

これは余談ですがRADで作成したノーマルウインドウならばサイズ変更枠⇔細枠(windowサイズを変更できない)の切替はプログラム実行中でも割と簡単にできます。
TISAproject
記事: 62
登録日時: 2016年9月24日(土) 15:35

Re: DOSプロント

#3 投稿記事 by TISAproject »

ほかのOSではわかりませんが、私はWindows10を使っています。
プロントを表示して、多くの文字をそこに出力させると、windowサイズを変えるときに、文字がどこかへ飛んでしまうのです。
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

Re: DOSプロント

#4 投稿記事 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などからコマンドとして実行してもらう想定のプログラムを作る場合には、やらないほうが好ましいです。
TISAproject
記事: 62
登録日時: 2016年9月24日(土) 15:35

Re: DOSプロント

#5 投稿記事 by TISAproject »

ご丁寧な説明ありがとうございます
返信する