0

WM_SIZE の Windows メッセージ ハンドラーで、現在のサイズ変更がユーザー アクション (マウスまたはシステム メニュー + キーボードによるサイズ変更など) によってトリガーされたかどうかを検出することは可能ですか?

(現在、サイズ変更が「私のコードのため」であるかどうかのフラグを設定/リセットしていますが、これは場合によっては非常に扱いにくいです)


[編集] ユースケース:
目的は、「ユーザーが設定したサイズ」を、他の操作によって引き起こされるサイズの変更と区別することです (これもユーザーの制御下にあります)。

この特定のケースでは、各ページの最小/既定サイズが異なるプロパティ シート コントロールがあります。

予想されるユーザーの動作は次のとおりです。

  • シートの最小サイズが、現在のページに必要なサイズよりも小さくありません (つまり、ページが変更されると変更されます)。
  • ユーザーがシートのサイズを「できるだけ小さく」してから別のページに切り替える場合は、「そのページに対してできるだけ小さく」サイズを変更する必要があります。

(非公式な第 1 レベルのユーザビリティ テスト (つまり、私がそれをいじっています) では、この「小さいサイズを使用」は X と Y で別々に追跡する方がよいことが示されています)

はい、これにより、ページが変更されたときにシート サイズがジャンプします。これは残念なことですが、この特定のアプリケーションでは他の方法よりも優れています。

この場合、その風はトップレベルではないため、Aero ドッキングはサポートされていません。


FWIW、変更メッセージはすべてのコントロールに対して常に一貫して発生し、これがユーザー アクションによってトリガーされたか、プログラムによってトリガーされたかを示すインジケーターがあり、「UI コントロール API に不可欠」のリストの上位にランク付けされています。

4

0 に答える 0