チケット #31735

登録: 2013-07-20 09:31

最終更新: 2014-11-16 16:21

&WindowMonitorToを画面の解像度のディスプレイ番号順にしたい。

報告者:applet担当者:(未割り当て)
優先度:5 - 中マイルストーン:(未割り当て)
チケットの種類:サポートリクエスト重要度:5 - 中
コンポーネント:(未割り当て)状況:完了
解決法なし

チケットの詳細

サポートリクエストがあったもの。

どうやら、画面の解像度でのディスプレイ番号と、のどか(窓使いの憂鬱)が認識しているディスプレイの順番が一致しない。 3個までは良いが、4個以上で問題となる。

Win32 APIを調査してみると EnumDisplayMonitors()で取得できる情報と、Windowsが持っている情報が一致しない。 APIは、Windows 2000からサポートされたものであるが、Vista以降では、GetPhysicalMonitorsFromHMONITOR()など 別の関数が用意されている様子。

添付ファイル

添付ファイルリスト添付ファイルはありません
新規添付ファイル追加
添付ファイルの追加添付ファイルの追加にはログインが必要です

チケットの履歴 - 4 件中 3 件表示 [古い履歴も表示する]

2013-07-20 09:31 更新者: applet

  • 新しいチケット "&WindowMonitorToを画面の解像度のディスプレイ番号順にしたい。" が作成されました

2013-07-20 09:41 更新者: applet

コメント

&MouseMonitorToも同じ課題を抱える。

2014-11-08 22:23 更新者: applet

コメント

ディスプレイ番号とは、そもそも無意味であり、番号に関係なく、位置を決められるので、設定されたモニターの座標位置を比較して、左右の位置を割り出す必要がある。 なお上下位置関係も考慮する必要があるが、これは、左上から順次右へ辿って行き、右端に達したら、次の段の左として、右下までが、左右に存在するようにテーブル上で入れ替えて把握する。

座標だけを考慮する場合、従来のEnumDisplayMonitors()で、モニターの座標を取得するたびに、従来であれば、そのまま取れた順にテーブルに代入していたが、都度ソートしてテーブルに入れれば良い。

2014-11-16 16:21 更新者: applet

  • チケット完了時刻2014-11-16 16:21 に更新されました
  • 状況オープン から 完了 に更新されました

コメント

4.27で対応。


追記/更新 #31735 (&WindowMonitorToを画面の解像度のディスプレイ番号順にしたい。)

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする