首頁 > 後端開發 > C++ > 為什麼我的DPI-Unaware應用程序在更新到系統意識之後突然表現出UI失真?

為什麼我的DPI-Unaware應用程序在更新到系統意識之後突然表現出UI失真?

Barbara Streisand
發布: 2025-01-28 09:06:11
原創
1005 人瀏覽過

Why Does My DPI-Unaware Application Suddenly Exhibit UI Distortion After Updating to System Aware?

dpi意識:Windows位圖縮放(6.0)與系統Aware(6.1)>

>該案例研究研究了最初設計為DPI-Unaware的應用程序,依靠Windows位圖縮放來進行高DPI顯示器。 版本6.1的更新出乎意料地將其DPI意識更改為系統意識,從而導致UI失真。

對問題進行故障排除

根本原因是更新版本中新納入的第三方組件。 儘管該應用程序固有的DPI未清除性,但第三方組件還是引入了DPI意識。

管理DPI意識 DPI意識可以在應用程序清單中明確控制:>

或者,Windows API提供編程控制:

<code class="language-xml"><application>
  <windowsSettings>
    <dpiAware>false</dpiAware>
  </windowsSettings>
</application></code>
登入後複製
解決方案

<code class="language-csharp">SetProcessDPIAware();
GetAwarenessFromDpiAwarenessContext(GetWindowDpiAwarenessContext(hWnd));</code>
登入後複製
>恢復到dpi unawarenes,將

添加到應用程序清單中。 如果第三方組件強制DPI意識,請考慮將添加到中以覆蓋不需要的行為。

以上是為什麼我的DPI-Unaware應用程序在更新到系統意識之後突然表現出UI失真?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板