回答編集履歴

12

文言修正

2020/12/24 05:59

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -26,13 +26,13 @@
26
26
 
27
27
  提示されたコード内には定義が見当たりませんが、`MAX_WIDTH-1`と`MAX_HEIGHT-1`にしても変化しない場合は表示領域内に収まらないサイズなのでしょう。
28
28
 
29
- `GetConsoleScreenBufferInfo()`で実際に設定可能な最大ウインドウサイズを取得して設定してみてください。
29
+ 以下のように`GetConsoleScreenBufferInfo()`で実際に設定可能な最大ウインドウサイズを取得して設定してみてください。
30
30
 
31
31
  ```C++
32
32
 
33
33
  // 画面サイズ変更
34
34
 
35
- CONSOLE_SCREEN_BUFFER_INFO screenBufferInfo = {};
35
+ CONSOLE_SCREEN_BUFFER_INFO screenBufferInfo;
36
36
 
37
37
  if (GetConsoleScreenBufferInfo(mHandle, &screenBufferInfo))
38
38
 

11

文言修正

2020/12/24 05:59

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
  提示されたコード内には定義が見当たりませんが、`MAX_WIDTH-1`と`MAX_HEIGHT-1`にしても変化しない場合は表示領域内に収まらないサイズなのでしょう。
28
28
 
29
- 実際に設定可能な最大ウインドウサイズを取得して設定してみてください。
29
+ `GetConsoleScreenBufferInfo()`で実際に設定可能な最大ウインドウサイズを取得して設定してみてください。
30
30
 
31
31
  ```C++
32
32
 

10

文言修正

2020/12/24 05:54

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  コンソールスクリーンバッファサイズ以下でも、表示領域内に収まらないような大きなサイズを指定した場合エラー(`GetLastError()` 0x57:The parameter is incorrect.)が返るようです。
26
26
 
27
- 提示されたコード内には定義が見当たりませんが、`MAX_WIDTH``MAX_HEIGHT`表示領域内に収まらないサイズなのでしょう。
27
+ 提示されたコード内には定義が見当たりませんが、`MAX_WIDTH-1``MAX_HEIGHT-1`にしても変化しない場合は表示領域内に収まらないサイズなのでしょう。
28
28
 
29
29
  実際に設定可能な最大ウインドウサイズを取得して設定してみてください。
30
30
 

9

文言修正

2020/12/23 08:49

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -24,7 +24,9 @@
24
24
 
25
25
  コンソールスクリーンバッファサイズ以下でも、表示領域内に収まらないような大きなサイズを指定した場合エラー(`GetLastError()` 0x57:The parameter is incorrect.)が返るようです。
26
26
 
27
+ 提示されたコード内には定義が見当たりませんが、`MAX_WIDTH`か`MAX_HEIGHT`が表示領域内に収まらないサイズなのでしょう。
28
+
27
- 設定可能な最大ウインドウサイズを取得して設定してみてください。
29
+ 実際に設定可能な最大ウインドウサイズを取得して設定してみてください。
28
30
 
29
31
  ```C++
30
32
 

8

文言修正

2020/12/23 08:38

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  ---
24
24
 
25
- バッファサイズ以下でも、表示領域内に収まらないような大きなサイズを指定した場合エラー(`GetLastError()` 0x57:The parameter is incorrect.)が返るようです。
25
+ コンソールスクリーンバッファサイズ以下でも、表示領域内に収まらないような大きなサイズを指定した場合エラー(`GetLastError()` 0x57:The parameter is incorrect.)が返るようです。
26
26
 
27
27
  設定可能な最大ウインドウサイズを取得して設定してみてください。
28
28
 

7

文言修正

2020/12/23 08:35

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -22,9 +22,9 @@
22
22
 
23
23
  ---
24
24
 
25
- バッファサイズ以下でも、表示領域内に収まらないような大きなサイズを指定した場合エラー(GetLastError() 0x57:The parameter is incorrect.)が返るようです。
25
+ バッファサイズ以下でも、表示領域内に収まらないような大きなサイズを指定した場合エラー(`GetLastError()` 0x57:The parameter is incorrect.)が返るようです。
26
26
 
27
- 設定可能な最大サイズを取得して設定してみてください。
27
+ 設定可能な最大ウインドウサイズを取得して設定してみてください。
28
28
 
29
29
  ```C++
30
30
 

6

エラーコード追記

2020/12/23 08:34

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  ---
24
24
 
25
- バッファサイズ以下でも、表示領域内に収まらないような大きなサイズを指定した場合エラーが返るようです。
25
+ バッファサイズ以下でも、表示領域内に収まらないような大きなサイズを指定した場合エラー(GetLastError() 0x57:The parameter is incorrect.)が返るようです。
26
26
 
27
27
  設定可能な最大サイズを取得して設定してみてください。
28
28
 

5

コード追記

2020/12/23 08:32

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -17,3 +17,29 @@
17
17
  上記を書いてから気づきましたが、あなたの貼ったコードでも///の上の部分で`SetConsoleWindowInfo()`を呼んでいるようですが…
18
18
 
19
19
  (追記)dodox86さんのコメントの通り、右下の座標は-1しないといけませんね。
20
+
21
+
22
+
23
+ ---
24
+
25
+ バッファサイズ以下でも、表示領域内に収まらないような大きなサイズを指定した場合エラーが返るようです。
26
+
27
+ 設定可能な最大サイズを取得して設定してみてください。
28
+
29
+ ```C++
30
+
31
+ // 画面サイズ変更
32
+
33
+ CONSOLE_SCREEN_BUFFER_INFO screenBufferInfo = {};
34
+
35
+ if (GetConsoleScreenBufferInfo(mHandle, &screenBufferInfo))
36
+
37
+ {
38
+
39
+ SMALL_RECT consoleSize = { 0, 0, screenBufferInfo.dwMaximumWindowSize.X - 1, screenBufferInfo.dwMaximumWindowSize.Y - 1 };
40
+
41
+ SetConsoleWindowInfo( mHandle, TRUE, &consoleSize);
42
+
43
+ }
44
+
45
+ ```

4

サイズ指定修正

2020/12/23 08:31

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ```C++
4
4
 
5
- SMALL_RECT consoleSize = { 0, 0, MAX_WIDTH, MAX_HEIGHT };
5
+ SMALL_RECT consoleSize = { 0, 0, MAX_WIDTH-1, MAX_HEIGHT-1 };
6
6
 
7
7
  SetConsoleWindowInfo( mHandle, TRUE, &consoleSize);
8
8
 
@@ -15,3 +15,5 @@
15
15
 
16
16
 
17
17
  上記を書いてから気づきましたが、あなたの貼ったコードでも///の上の部分で`SetConsoleWindowInfo()`を呼んでいるようですが…
18
+
19
+ (追記)dodox86さんのコメントの通り、右下の座標は-1しないといけませんね。

3

文言修正

2020/12/23 08:29

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -14,4 +14,4 @@
14
14
 
15
15
 
16
16
 
17
- 上記を書いてから気づきましたが、あなたの貼ったコードでも///の上の部分で呼んでいるようですが…
17
+ 上記を書いてから気づきましたが、あなたの貼ったコードでも///の上の部分で`SetConsoleWindowInfo()`を呼んでいるようですが…

2

指摘追加

2020/12/23 07:46

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -7,3 +7,11 @@
7
7
  SetConsoleWindowInfo( mHandle, TRUE, &consoleSize);
8
8
 
9
9
  ```
10
+
11
+ ---
12
+
13
+ > 提示コードの///部ですがこのどうすればプログラムでコンソール画面のウインドウサイスを変更できるのでしょうか?どうやっても変更されません。SetWindowPos関数で変更するみたいなのですがどうすればいいのでしょうか?
14
+
15
+
16
+
17
+ 上記を書いてから気づきましたが、あなたの貼ったコードでも///の上の部分で呼んでいるようですが…

1

文言修正

2020/12/23 07:45

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -1,4 +1,4 @@
1
- [SetConsoleWindowInfo ](https://docs.microsoft.com/en-us/windows/console/setconsolewindowinfo)
1
+ 文字数単位でコンソールウインドウのサイズを指定したいのであれば[SetConsoleWindowInfo](https://docs.microsoft.com/en-us/windows/console/setconsolewindowinfo)
2
2
 
3
3
  ```C++
4
4