ウインドウの「移動（M）」「サイズ変更（S）」が思いのほか便利だった件

# はじめに

WindowsPCを触っている人であれば、一度は誰もが目にした事があるとは思うのですが、ウインドウの左上をマスクでクリック（あるいは「Alt+スペース」を入力）した時に出てくる以下のメニュー項目の件です。

![「ALT+スペース」メニュー](https://socket-manager.github.io/document/img/windows-size-move/menu.png "「ALT+スペース」メニュー")

「移動（M）」や「サイズ変更（S）」の項目を選択するとカーソルが十字型の矢印の形になりますが、その先のオペレーションがわからないままウインドウの移動やサイズ変更はどうせマウスでできるんだし、ウインドウズのスナップ機能もあるので問題ないだろうと思って今までスルーしていました。

そんな簡単な事を今まで知らなかったのかと後から思うとエンジニアとして恥ずかしい限りですが、私のようにマインクラフト関連記事を書いていると、ウインドウのサイズによってゲーム画面の視界や見え方が変わったりするので、スクリーンショットや動画を撮影している時には細かいサイズ調整やウインドウの位置調整をしたくなる事が多々あります。

例えば以下の画面のようにサイズが異なる複数のウインドウをびっしり並べて撮影する時には特に有用です。

▼Webブラウザ⇔マインクラフト間でチャットをしている様子
<img src="https://socket-manager.github.io/document/img/index/demo.gif" />

:::note info
ブラウザ側のログは最新のメッセージが上に積みあがっていくタイプです。
:::

:::note info
マインクラフト統合版にはWebsocketの通信機能が実装されていますので、上の画面のようにWebブラウザ⇔マインクラフト間でチャットが行えます。
:::


# 操作方法

メニューから「移動（M）」や「サイズ変更（S）」を選択するとマウスカーソルが以下のような十字型の矢印になります。

![十字型のカーソル](https://socket-manager.github.io/document/img/windows-size-move/cross-cursor.png "十字型のカーソル")

つまり「上下左右のいずれかのキーを押してね」という状態になりますので、この状態でキーを押す事によってそれぞれ以下のような動きになります。

### 「移動（M）」の場合

移動したい方向のカーソルキーを押す度に一定の間隔で移動します。

以下は「左に５回⇒右に５回」押し続けた場合の動きです。
<img src="https://socket-manager.github.io/document/img/windows-size-move/move.gif" />

移動後にリターンキー、あるいはマウスを左クリックすると現在の位置で確定します。
ちなみに、操作の途中で`ESCキー`を使うと元の位置に戻ります。

:::note info
`Ctrlキー`を押しながら移動するとピクセル単位で動いてくれるのでさらに細かい調整が可能になります。
:::

### 「サイズ変更（S）」の場合

サイズを変更したい方向のウインドウ枠を確定後、カーソルキーを押し続ける事によってその方向のサイズが一定の間隔で変わります。
ウインドウ枠の確定手順には以下の２種類があります。

<dl>
    <dt>・一方向（以下の場合は左方向）のサイズを変更する場合<br /><br /></dt>
    <dd>
        ①サイズを変更したい方向キー（今回の場合は左方向）を押すとカーソルの形状が以下のように変化してサイズ変更の対象がウインドウ左枠で確定します。<br />
        <img src="https://socket-manager.github.io/document/img/windows-size-move/cursor-left.png" /><br /><br />
        ②その後、「左に５回⇒右に５回」押し続けると以下のようにサイズが変化します。<br />
        <img src="https://socket-manager.github.io/document/img/windows-size-move/size-left.gif" /><br /><br />
        ※一度変更する方向のカーソルを押すと反対方向の枠を動かす事はできなくなります。<br /><br />
    </dd>
    <dt>・二方向（以下の場合は左と上方向）のサイズを変更する場合<br /><br /></dt>
    <dd>
        ①サイズを変更したい方向キー（今回の場合は左方向）を押すとカーソルの形状が以下のように変化してサイズ変更の対象がウインドウ左枠で確定します。<br />
        <img src="https://socket-manager.github.io/document/img/windows-size-move/cursor-left.png" /><br /><br />
        ②最初に確定したウインドウ枠の隣り合わせの方向キー（今回の場合は上方向）を押すとカーソルの形状が以下のように変化して、サイズ変更の対象がウインドウの左上角（左側と上側）で確定します。<br />
        <img src="https://socket-manager.github.io/document/img/windows-size-move/cursor-left-up.png" /><br /><br />
        ③その後、「左に５回⇒上に５回」押し続けると以下のようにサイズが変化します。<br />
        <img src="https://socket-manager.github.io/document/img/windows-size-move/size-left-up.gif" /><br /><br />
        ※最初のウインドウ枠を確定してサイズを動かした後でも二つ目の枠選択は可能です。<br />
        ※一度変更する二方向が確定すると、他の方向の枠を動かす事はできなくなります。
    </dd>
</dl><br />

サイズ変更後にリターンキー、あるいはマウスを左クリックすると現在のサイズで確定します。
ちなみに、操作の途中で`ESCキー`を使うと元のサイズに戻ります。

:::note info
サイズ変更するウインドウ枠を確定後に選び直したい場合は、一度現在のサイズで確定、あるいは`ESCキー`でキャンセル後、メニュー選択からやり直す必要があります。
:::

:::note info
`Ctrlキー`を押しながらサイズ変更するとピクセル単位で動いてくれるのでさらに細かい調整が可能になります。
:::


# おわりに

マウスドラッグで位置やサイズを調整をしようとした結果、微妙なズレが発生して何度も失敗してしまったり、エビデンスを取った後に失敗に気付いて何度も取り直しするハメになってしまうような事があると余計に時間がかかってしまって苛立ちを募らせてしまう事があります。
そんな時に今回ご紹介したような方法を使うとより確実でスムーズに進められると思うので、精神衛生上の観点からも落ち着いて対応できると思います。

ここでご紹介した移動の操作に関してはエビデンスを残す目的だけではなく、ウインドウが画面外に出てしまった時の救済措置としても使われているようです。