Bagikan melalui


Fungsi GetDialogBaseUnits (winuser.h)

Mengambil unit dasar dialog sistem, yang merupakan lebar rata-rata dan tinggi karakter dalam font sistem. Untuk kotak dialog yang menggunakan font sistem, Anda bisa menggunakan nilai-nilai ini untuk mengonversi antara unit templat dialog, seperti yang ditentukan dalam templat kotak dialog, dan piksel. Untuk kotak dialog yang tidak menggunakan font sistem, konversi dari unit templat dialog ke piksel bergantung pada font yang digunakan oleh kotak dialog.

Untuk salah satu jenis kotak dialog, lebih mudah menggunakan fungsi MapDialogRect untuk melakukan konversi. MapDialogRect memperhitungkan font dan mengonversi persegi panjang dengan benar dari unit templat dialog menjadi piksel.

Sintaks

long GetDialogBaseUnits();

Mengembalikan nilai

Jenis: LONG

Fungsi mengembalikan unit dasar dialog. Kata berurutan rendah dari nilai yang dikembalikan berisi unit dasar kotak dialog horizontal, dan kata berurutan tinggi berisi unit dasar kotak dialog vertikal.

Keterangan

Unit dasar horizontal yang dikembalikan oleh GetDialogBaseUnits sama dengan lebar rata-rata, dalam piksel, karakter dalam font sistem; unit dasar vertikal sama dengan tinggi, dalam piksel, dari font.

Font sistem hanya digunakan jika templat kotak dialog gagal menentukan font. Sebagian besar templat kotak dialog menentukan font; akibatnya, fungsi ini tidak berguna untuk sebagian besar kotak dialog.

Untuk kotak dialog yang tidak menggunakan font sistem, unit dasar adalah lebar dan tinggi rata-rata, dalam piksel, karakter dalam font dialog. Anda bisa menggunakan fungsi GetTextMetrics dan GetTextExtentPoint32 untuk menghitung nilai-nilai ini untuk font yang dipilih. Namun, dengan menggunakan fungsi MapDialogRect , Anda dapat menghindari kesalahan yang mungkin mengakibatkan jika perhitungan Anda berbeda dari yang dilakukan oleh sistem.

Setiap unit dasar horizontal sama dengan 4 unit templat dialog horizontal; setiap unit dasar vertikal sama dengan 8 unit templat dialog vertikal. Oleh karena itu, untuk mengonversi unit templat dialog menjadi piksel, gunakan rumus berikut:


pixelX = MulDiv(templateunitX, baseunitX, 4);
pixelY = MulDiv(templateunitY, baseunitY, 8);

Demikian pula, untuk mengonversi dari piksel ke unit templat dialog, gunakan rumus berikut:


templateunitX = MulDiv(pixelX, 4, baseunitX);
templateunitY = MulDiv(pixelY, 8, baseunitY);

Contoh

Misalnya, lihat "Membuat Toolbar Kotak Kombo" di Menggunakan Kotak Kombo.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header winuser.h (termasuk Windows.h)
Pustaka User32.lib
DLL User32.dll
Set API ext-ms-win-ntuser-dialogbox-l1-1-2 (diperkenalkan dalam Windows 10, versi 10.0.10240)

Lihat juga

Konseptual

Kotak Dialog

MapDialogRect

Referensi