none
「高いDPI認識」でサブディスプレイ側のDPIに最適は可能か

    質問

  • 「モニタごとの高いDPI認識」のプログラムを作成しようとしていましたが、現状は技術的に困難なので「高いDPI認識」で妥協する予定です。
    ただ、異なるDPIモニタが接続されている場合、どちらに最適化するかを選べるようにしたいのですがそのような事は可能でしょうか?
    現状はメインディスプレイ側に固定されてしまい、サブディスプレイ側はぼやけてしまいます。
    2017年5月11日 2:12

回答

すべての返信

  • Writing DPI-Aware Desktop and Win32 Applicationsで説明されていますが、検討すべき点やコーディングも多々あるため、単にオプションを選べば済むというものではありません。High DPIについて理解を深めてください。

    # というかもしオプションだけで済むなら、そもそもオプションなんか用意せず最適な設定が適用されれば済む話なんですし。

    2017年5月11日 2:18
  • 佐祐理さんと回答がかぶりますが、

    「高いDPI認識」でサブディスプレイ側のDPIに最適は可能か

    こちらは不可能です。「高い DPI 認識」と設定されたアプリは、システム DPI を基準に拡縮が行われます。システム DPI はプライマリ ディスプレイの DPI となっています。

    参考サイト:
    https://msdn.microsoft.com/en-us/library/windows/desktop/dn469266(v=vs.85).aspx
    https://msdn.microsoft.com/ja-jp/library/dn528846.aspx

    • 回答としてマーク 安沢 2017年5月11日 5:22
    2017年5月11日 4:55
  • 「高いDPI認識」でサブディスプレイ側のDPIに最適は可能か

    こちらは不可能です。「高い DPI 認識」と設定されたアプリは、システム DPI を基準に拡縮が行われます。システム DPI はプライマリ ディスプレイの DPI となっています。

    ご回答ありがとうございます。
    やはり無理でしたか。
    MFCのMDIプログラムとして作成しているため、「モニタごとの高いDPI認識」のプログラムとするのが非常に困難です。
    SetThreadDpiAwarenessContextでDPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2が使えるようになったので、多少楽にできるかと思ったのですが
    https://social.msdn.microsoft.com/Forums/ja-JP/f11ca0f0-d0c3-4731-a439-a0029d20b26c/dpimding?forum=vcgeneralja
    のような障害が発生するし、他にもツールバーの高さが変になったり、位置がずれたりするのでので諦めている状態です。
    マルチDPI対応は無理でも、ユーザが使いたいモニタ側のDPIで動作できればと思ったしだいです。
    ありがとうございました。
    2017年5月11日 5:22