2017-08-31 2 views
-3

私はゲームメーカー用のdllで作業していますが、いくつかの問題が発生しています。 すでに作成されたウィンドウでdpi設定を変更できないようです。 これは本当ですか、それとも回避策がありますか? 私はSetProcessDpiAwarenessとSetThreadDpiAwarenessContextを使用しています。 私はC#を使用していましたが、必要に応じてC++に切り替えても構いません。作成後にウィンドウのdpi意識を変更する

ありがとうございます。

答えて

-1

Windows 10より前のバージョンでは、DPIはプロセス全体にわたり一定です。 Windows 10 Anniversary Updateで始まるあなたが動的スレッドDPIを変更することができ、これはmixed mode DPI scalingとして知られているが、それはまだあなたが動的に窓DPIを変更することはできません:ウィンドウが作成されると

  • 、そのDPIの認識は次のように定義されその時点での呼び出しスレッドのDPI認識。
  • ウィンドウのウィンドウプロシージャが呼び出されると、ウィンドウは作成時に使用されていたDPI認識コンテキストに自動的に切り替えられます。私は考えることができる

唯一の回避策は、スレッドDPIを変更して、ウィンドウの新しいインスタンスと古い窓を交換することです。

関連する問題