menu / menuarray の不思議な挙動No.11389
western さん 23/05/22 20:04
 

以下 menuarray で再現マクロ書いてますが  menu 文でも同じ挙動となりました

■ パターン@ 見えない要素

$item[0] = "1";
menuarray $item, 1;
message str(result);


表示して Enter => 1
表示して Up, Enter => 0 (これは意図する挙動か?)

上下のメニューアイテムが1つの場合に限り、
非選択(result==0)となる隠し要素があるような挙動

トップメニューにしろ、サブメニューにしろ
表示した時点でデフォルトで先頭のメニューアイテムが選択状態という挙動(おそら
くこれは想定通り)


■ パターンA サブメニュー開いた直後に選択中ハイライトが無い

$item[0] = "1-1";
$item[1] = "\x011-2";
$item[2] = "1-2-1";
$item[3] = "";
menuarray $item, 4;
message str(result);

表示して Enter => result == 1
表示して Up => カーソルが 1-2 に移動
表示して Down, Enter, Enter => 3
表示して Down, Enter, Up, Enter => 0 (これは意図する挙動か?)


パターンAで Down, Enter, してサブメニューを開いた直後に
サブメニューのハイライト(選択中メニューアイテムの黒枠)が表示されない
ことで操作に戸惑いからの調査と報告 (Windows 11 x64)

サブメニュー配下のアイテムを2段にした場合 (上記では1つ追加で要素数5にす
る) は、
サブメニューを開いた後に、カーソル上 or 下 で2番目の要素がハイライトされる
その状態であれば、カーソル選択で1段目もイメージ通りにハイライトされる

■ [メニュー]>[表示(V)]>[折り返し][ルーラーの表示][タブストップ] 3つ

同じ挙動は上記メニューのサブメニュー開いた状態でも発生してる

サブメニューを開いた直後は、選択状態が無いように見えるが
開いた直後に Enter を押すと、最上段のアイテムが選択されたような挙動が起こる

■ 隠し要素? とデフォルト状態

result == 0 となる隠し要素が出現したり、しなかったりで不思議な動作

result == 0 となる隠し要素(がバグではない! のであれば……)
を利用してメニューを表示した直後を非選択状態 (カーソル上下で初めて result !=
 0 となる挙動)
というロジックは何かの手順で可能か?

サブメニューについては開いた時点で最上段アイテムが選択状態が普通の気もする



RPA(自動操作)を使っている場合は、挙動の変化によるトラブル起きる事例も発生するが
メニューによる選択操作は目視する人間向けUIの話なので、
あくまで「目視して見て思った通りの結果」が得られるのであれば、
よくあるソフト(OS)バージョン違いによる挙動の違いは許容される と思われる。
Windows アップグレードや Linux のGUIライブラリ変更時あるある




今は目視とは違う不思議な動きが複数ある状況なので、改善を期待します

おま環(私の使っている環境)である場合は、追加情報を改めて報告します

[ ]
RE:11389 menu / menuarray の不思議な挙No.11390
western さん 23/05/22 21:15
 
ウィンドウ上部のメニューを一通り確認してみましたが

[ファイル(F)]のサブメニューはアイテム選択中が水色の背景色で表示
[ファイル]以外のサブメニューはアイテム選択中が黒枠で表示

と思いきや、[検索(S)]>[強調]は、水色背景だったり
サブメニュー配下のアイテム名の頭にチェックが入れられるような
拡張された状態との違いでしょうか

可能であれば(9.22βには求めませんが)、
この「選択を表すチェック」と「選択できないグレーアウト」な項目を
menuarray でも使えたりしませんでしょうか?


あと試しているうちに気付きましたが、先の報告の黒枠ハイライトが表示されてない
状態でも
よく目を凝らせば、ほんのうっすらと背景が少し色がだけ付いているっぽいですね

[ ]
RE:11390 menu / menuarray の不思議な挙No.11392
秀丸担当 さん 23/05/23 17:28
 
menu文は、単なるWindows標準のメニューになっています。
項目が1つだけのときの上矢印キーは昔からそうなっているみたいです。

メニューが出た直後の最初の選択だけは独自にしています。
それ以外はWindows標準の動作ということになります。
エクスプローラで、ファイルの右クリックではなくアプリケーションキー(右Ctrl
隣)でコンテキストメニューを出すとだいたい似た感じとわかると思います。SendTo
フォルダをいじれば1つの項目も確認できると思います。

メニューバーとその配下は全て独自描画にすることを目指していますが、ご指摘の通
り、まだ完全でない部分があります。
[その他]→[メニュー編集...]でメニューバー配下をカスタマイズできるところはだ
いたいできて、残された部分はぼちぼちやっていこうかと思います。
メニューバー以外はいまのところ独自描画ではないです。

Windows11はデザイン優先でとにかく見にくいところが多いです。
たぶん見にくいというフィードバックがあったためと思いますが、初期の頃はキー操
作時のメニュー項目の枠線が無くて、あるビルドから枠線が突如現れました。
主要な標準アプリであるメモ帳、ペイント、エクスプローラもAltからのキー操作が
よくわからない感じになっていますが、秀丸エディタはできるだけ従来のメニューで
Alt操作ができて見やすいようにしたいところです。

[ ]