Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mendapatkan Tetapan Penskalaan Paparan Windows Secara Pengaturcaraan?
Tentukan tetapan paparan Windows secara berprogram
Dalam Windows 7 dan ke atas, pengguna boleh melaraskan parameter paparan, seperti saiz teks, dalam Panel Kawalan. Mengakses tetapan ini berguna untuk mendayakan atau melumpuhkan fungsi aplikasi berdasarkan keutamaan pengguna.
Bolehkah tetapan paparan ini diambil semula secara pengaturcaraan?
Ternyata kedua-dua sifat graphics.DpiX
dan DeviceCap.LOGPIXELSX
mengembalikan nilai konsisten 96 pada peranti Surface Pro tanpa mengira tahap zum. Untuk mengira faktor penskalaan dengan tepat, pendekatan lain diperlukan.
Kaedah yang berkesan ialah menggunakan fungsi gdi32.dll
dalam GetDeviceCaps
. Dengan mengukur ketinggian skrin logik dan fizikal kita boleh menentukan faktor penskalaan skrin.
<code class="language-csharp">[DllImport("gdi32.dll")] static extern int GetDeviceCaps(IntPtr hdc, int nIndex); public enum DeviceCap { VERTRES = 10, DESKTOPVERTRES = 117, } private float getScalingFactor() { using Graphics g = Graphics.FromHwnd(IntPtr.Zero); IntPtr desktop = g.GetHdc(); int LogicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.VERTRES); int PhysicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.DESKTOPVERTRES); g.ReleaseHdc(desktop); float ScreenScalingFactor = (float)PhysicalScreenHeight / (float)LogicalScreenHeight; return ScreenScalingFactor; }</code>
Dengan memanggil fungsi ini, kami boleh mendapatkan faktor penskalaan skrin dengan tepat, membolehkan kami melaraskan gelagat aplikasi dengan sewajarnya.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Tetapan Penskalaan Paparan Windows Secara Pengaturcaraan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!