問題タブ [hidpi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
113 参照

winforms - WinForms DpiChanged イベントをトリガーするにはどうすればよいですか?

(いいえ、このコードベースを .NET Core 以降にアップグレードすることはまだできません。)

主に Windows フォームで、部分的に WPF のアプリがあります。実行時にフォント サイズが変更された場合、WPF は正しく反応します。代わりに、Windows フォームは、再起動しない限り、何かが変更されたことさえ認識していないようです。たとえばControl.DeviceDpiプロパティ(4.7 まで導入されなかった) は、現在の値ではなく、起動時の正確な値を示します。

app.manifestは持っています:

app.configは持っています:

しかし、4.7ではイベント導入されました。Control.DpiChanged

それでも、オーバーライドWndProcしてリッスンするとWM_DPICHANGED、それ発生します。このコードは、イベントが発生することを示唆しているようです。

どうやら、このコードは条件付きでオフにするため、そうではありません。しかし、どの部分が資格がないのかわかりません。(私は Windows 10 21H1 を使用しているため、RS2 よりも新しいものです。)

0 投票する
1 に答える
94 参照

windows - LoadCursor と混合 DPI 複数モニター

LoadCursor関数を使用してリソースからカーソルをロードすると、結果はHCURSOR異なるモニター間で使用でき、常に正しいサイズで表示されます。

すなわち: 通常:

  • 96 dpi モニターでは、32x32 リソースが使用されます。
  • 192 dpi モニターでは、64x64 リソースが使用されます。

ただし、メモリからカーソルをプログラムで作成すると (たとえば、 and を使用LookupIconIdFromDirectoryExしてCreateIconFromResourceEx)、結果のカーソルの解像度は固定されます。これは、混合 DPI マルチモニター設定で、少なくとも 1 つのモニターで間違ったサイズで表示されることを意味します。

もチェックアウトしましたがLoadCursorFromFile、これも のような動的解決動作を提供しますLoadCursor

表示されているモニターに応じて動的に切り替わるカーソルをプログラムで作成する方法はありますか? ロードされたカーソルが異なる動作をするために、舞台裏でどのような魔法が起こっているのLoadCursorでしょうか?

0 投票する
0 に答える
29 参照

c# - MFC ネイティブ アプリで WindowsFormsHighDpiAutoResizing を有効にする

WinForms コントロールを含む ac# アセンブリを参照する、CLR サポートが有効な MFC アプリケーション (.net Framework 4.7.2)。これらのコントロールは Control.DeviceDpi を使用しますが、実行時にこの API は常に 96 を返します。

EnableWindowsFormsHighDpiAutoResizing を使用して MFCApplication.exe.config を追加すると、問題が解決します。Control.DeviceDpi は正確な dpi を報告します。

この .config を MFCApplication.exe に埋め込む方法はありますか? または、起動時にこのフラグをプログラムで設定できますか? この点でベストプラクティスはありますか?