多大な努力を払って、MFC アプリケーションを begin から に移行しSytem DPI aware (High DPI aware)
ましたPer Monitor High DPI Aware
。ダイアログ ボックス、メッセージ ボックスなどのように使用した MFC コンポーネントはまだper-monitor-dpi aware
ではなく、 であるかのように動作しますsystem-dpi aware
。Windows DPI 仮想化がなくなったので、マシンのモニターごとに異なる DPI スケーリングを使用すると、これらのコンポーネントの表示がさらに悪化します。
たとえば。
2 台のモニター M1 (3840x2160 with150% dpi scaling
) と M2 (1280x1024 with100% DPI scaling
) を検討してください。アプリが M2 で実行されると、M2 に収まっていた色を選択するためのダイアログ ボックスが収まりません (以前の Windows OS では、DPI 仮想化のために縮小されていました)。
Windows 8 以降に導入された、モニターごとの dpi 対応の新しい MFC コンポーネントはありますか? たとえば。のDIALOGEX2
代わりにDIALOGEX
?