Rumah > pembangunan bahagian belakang > C++ > Bagaimana saya boleh membuat aplikasi Windows saya memaparkan teks segar pada skrin DPI tinggi?

Bagaimana saya boleh membuat aplikasi Windows saya memaparkan teks segar pada skrin DPI tinggi?

Patricia Arquette
Lepaskan: 2025-02-03 01:31:09
asal
929 orang telah melayarinya

How Can I Make My Windows Applications Display Crisp Text on High-DPI Screens?

Mencapai rendering teks segar dalam aplikasi windows tinggi-dpi

Memaparkan resolusi tinggi menunjukkan cabaran untuk aplikasi Windows: Antara muka berskala sering membawa kepada teks kabur. Ini adalah akibat daripada virtualisasi DPI berasaskan Bitmap Windows. Untuk menyelesaikannya dan memastikan teks yang tajam, aplikasi mestilah mengisytiharkan keupayaan mereka untuk mengendalikan tetapan DPI yang tinggi.

Membolehkan Keserasian DPI Tinggi: Pendekatan Manifest

Penyelesaian ini melibatkan mengubah fail manifes aplikasi anda. Menambah isyarat elemen

ke Windows bahawa aplikasi anda menyokong DPI yang tinggi. Inilah kod nyata yang diperlukan: <dpiaware>

<code class="language-xml"><?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
  <assemblyIdentity name="MyApplication.app" version="1.0.0.0" />
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>
  <application>
    <windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
      <dpiAware>true</dpiAware>
    </windowsSettings>
  </application>
</assembly></code>
Salin selepas log masuk

Alternatif: Pendekatan Programatik (Penyebaran ClickOnce) 3

SetProcessDPIAware() Visual Studio 2015 Update 1 dan kemudian: Main()

<code class="language-csharp">[STAThread]
static void Main() {
    if (Environment.OSVersion.Version.Major >= 6) SetProcessDPIAware();
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1()); // Adjust as needed
}

[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool SetProcessDPIAware();</code>
Salin selepas log masuk
Versi Visual Studio yang lebih baru (2015 Kemas kini 1 dan kemudian) Memudahkan ini. Fail manifes dimasukkan dalam projek baru; Cukup uncomment tag

.

Ringkasan:

<dpiaware>

Dengan mengisytiharkan aplikasi anda DPI-AWARE (melalui manifes atau

), anda memintas batasan virtualisasi Windows 'DPI. Ini memastikan teks yang tajam dan berskala pada skrin DPI tinggi, sangat meningkatkan pengalaman pengguna.

Atas ialah kandungan terperinci Bagaimana saya boleh membuat aplikasi Windows saya memaparkan teks segar pada skrin DPI tinggi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan