Fungsi EnableNonClientDpiScaling (winuser.h)

Dalam tampilan DPI tinggi, memungkinkan penskalaan tampilan otomatis dari bagian area non-klien dari jendela tingkat atas yang ditentukan. Harus dipanggil selama inisialisasi jendela tersebut.

Catatan Aplikasi yang berjalan pada DPI_AWARENESS_CONTEXTDPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 secara otomatis menskalakan area non-klien mereka secara default. Mereka tidak perlu memanggil fungsi ini.

 

Sintaks

BOOL EnableNonClientDpiScaling(
  [in] HWND hwnd
);

Parameter

[in] hwnd

Jendela yang seharusnya mengaktifkan penskalaian otomatis.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan bukan nol. Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Memanggil fungsi ini akan memungkinkan penskalaan non-klien untuk jendela tingkat atas individu dengan DPI_AWARENESS_CONTEXTDPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE. Jika sebaliknya Anda tidak menggunakan kesadaran per jendela, dan seluruh proses Anda berjalan dalam mode DPI_AWARENESS_PER_MONITOR_AWARE , memanggil fungsi ini akan memungkinkan penskalaan non-klien di jendela tingkat atas dalam proses Anda.

Jika tidak ada yang benar, atau jika Anda memanggil metode ini dari jendela lain, maka itu akan gagal dan mengembalikan nilai nol.

Penskalaan non-klien untuk jendela tingkat atas tidak diaktifkan secara default. Anda harus memanggil API ini untuk mengaktifkannya untuk setiap jendela tingkat atas individual yang anda inginkan untuk memiliki skala area non-klien secara otomatis. Setelah Anda melakukannya, tidak ada cara untuk menonaktifkannya. Mengaktifkan penskalaan non-klien berarti bahwa semua area yang digambar oleh sistem untuk jendela akan secara otomatis menskalakan sebagai respons terhadap perubahan DPI pada jendela. Itu termasuk area seperti bilah caption, bilah gulir, dan bilah menu. Anda ingin memanggil EnableNonClientDpiScaling ketika Anda ingin sistem operasi bertanggung jawab untuk merender area ini secara otomatis pada ukuran yang benar berdasarkan DPI monitor.

Memanggil fungsi ini memungkinkan penskalaan non-klien hanya untuk jendela tingkat atas. Jendela anak tidak terpengaruh.

Fungsi ini harus dipanggil dari WM_NCCREATE selama inisialisasi jendela baru. Contoh panggilan mungkin terlihat seperti ini:

case WM_NCCREATE:
{
    EnableNonClientDpiScaling(hwnd);
    return (DefWindowProc(hwnd, message, wParam, lParam));
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 10, versi 1607 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2016 [hanya aplikasi desktop]
Target Platform Windows
Header winuser.h (termasuk Windows.h)
Pustaka User32.lib
DLL User32.dll