ホームページ > バックエンド開発 > C++ > なぜ私のアプリケーションは、さまざまなリリースで突然DPI-AWAREになったのですか?

なぜ私のアプリケーションは、さまざまなリリースで突然DPI-AWAREになったのですか?

Mary-Kate Olsen
リリース: 2025-01-28 09:02:11
オリジナル
119 人が閲覧しました

Why Did My Application Suddenly Become DPI-Aware Across Different Releases?
異なるバージョンのアプリケーションのさまざまなバージョンのDPIの認識一部のアプリケーションでは、予期しないDPI認識の変更が異なるバージョン間で発生する場合があります。この違いは、第3パーティコンポーネントの使用や開発環境の使用の変化など、外部要因に起因する可能性があります。

テキストに記載されている特定のケースでは、DPIの認識はアプリケーションリストに明確に設定されておらず、DPIに関連するWindows APIが直接呼び出されませんが、アプリケーションは後続バージョンでDPI認識になります。これには、DPIの認識をアプリケーションに導入するDPI Perceptionの第3パーティコンポーネントが含まれている可能性があります。 この問題を解決するために、次の解決策を考慮することができます。

DPI認識の表現 Visual Studio 2015-upd.1以上のバージョンでは、パートのコメントをキャンセルし、アプリケーションリストでDPIの認識を宣言するためにfalseに設定します。

または、Windows API関数(setProcessdpiawareやsetProcessdpiawarenessssssssssssscontexなど)を使用します。

自動DPI認識を無効にします

    AssemblyInfo.csファイルに属性を追加して、WPFプログラムセットで参照される外部コンポーネントの自動DPI認識を無効にします。
  • その他の予防策

アプリケーションで使用されるすべての3番目のパーティコンポーネントと外部依存関係もDPIによって知覚されます。

  • DPI認識がインターフェイスの問題を引き起こす場合、アプリケーションを再設計してDPIスケーリングを明示的に処理するか、スレッドベースのSetThreadPiaWarenessContext関数を使用して、残りのコンポーネントを維持しながら特定のコンポーネントを拡大します。 [assembly: System.Windows.Media.DisableDpiAwareness]

DPIの認識の詳細については、Microsoftのドキュメントを参照してください:

Windowsでの高DPIデスクトップアプリケーション開発
  • プロセスのデフォルトのDPI認識を設定

  • ハイブリッドモードDPIズームとDPI認識API

以上がなぜ私のアプリケーションは、さまざまなリリースで突然DPI-AWAREになったのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート