Fungsi GetTextExtentPoint32A (wingdi.h)

Fungsi GetTextExtentPoint32 menghitung lebar dan tinggi string teks yang ditentukan.

Sintaks

BOOL GetTextExtentPoint32A(
  [in]  HDC    hdc,
  [in]  LPCSTR lpString,
  [in]  int    c,
  [out] LPSIZE psizl
);

Parameter

[in] hdc

Handel ke konteks perangkat.

[in] lpString

Penunjuk ke buffer yang menentukan string teks. String tidak perlu dihentikan null, karena parameter c menentukan panjang string.

[in] c

Panjang string yang ditujukkan oleh lpString.

[out] psizl

Penunjuk ke struktur SIZE yang menerima dimensi string, dalam unit logis.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan bukan nol.

Jika fungsi gagal, nilai yang dikembalikan adalah nol.

Keterangan

Fungsi GetTextExtentPoint32 menggunakan font yang saat ini dipilih untuk menghitung dimensi string. Lebar dan tinggi, dalam unit logis, dihitung tanpa mempertimbangkan kliping apa pun.

Karena beberapa karakter kern perangkat, jumlah sejauh mana karakter dalam string mungkin tidak sama dengan tingkat string.

Lebar string yang dihitung memperhitungkan spasi intercharacter yang ditetapkan oleh fungsi SetTextCharacterExtra dan pembenaran yang ditetapkan oleh SetTextJustification. Ini berlaku untuk ditampilkan pada layar dan untuk pencetakan. Namun, jika lpDx diatur dalam ExtTextOut, GetTextExtentPoint32 tidak mempertimbangkan spasi intercharacter atau justifikasi. Selain itu, untuk EMF, hasil cetak selalu memperhitungkan spasi intercharacter dan justifikasi.

Saat berhadapan dengan teks yang ditampilkan di layar, lebar string terhitung memperhitungkan spasi intercharacter yang diatur oleh fungsi SetTextCharacterExtra dan pertimbangan yang ditetapkan oleh SetTextJustification. Namun, jika lpDx diatur dalam ExtTextOut, GetTextExtentPoint32 tidak mempertimbangkan spasi intercharacter atau justifikasi. Namun, saat mencetak dengan EMF:

  • Hasil cetak mengabaikan penspasian intercharacter, meskipun GetTextExtentPoint32 memperhitungkannya .
  • Hasil cetak memperhitungkan justifikasi, meskipun GetTextExtentPoint32 mengabaikannya.
Ketika fungsi ini mengembalikan tingkat teks, ia mengasumsikan bahwa teks horizontal, yaitu, bahwa escapement selalu 0. Ini berlaku untuk pengukuran teks horizontal dan vertikal. Bahkan jika Anda menggunakan font yang menentukan escapement bukan nol, fungsi ini tidak menggunakan sudut saat menghitung tingkat teks. Aplikasi harus mengonversinya secara eksplisit. Namun, ketika mode grafik diatur ke GM_ADVANCED dan orientasi karakter adalah 90 derajat dari orientasi cetak, nilai yang dikembalikan fungsi ini tidak mengikuti aturan ini. Ketika orientasi karakter dan orientasi cetak cocok untuk string tertentu, fungsi ini mengembalikan dimensi string dalam struktur SIZE sebagai { cx : 116, cy : 18 }. Ketika orientasi karakter dan orientasi cetak terpisah 90 derajat untuk string yang sama, fungsi ini mengembalikan dimensi string dalam struktur SIZE sebagai { cx : 18, cy : 116 }.

GetTextExtentPoint32 tidak mempertimbangkan karakter "\n" (baris baru) atau "\r\n" (pengembalian pengangkutan dan baris baru) saat menghitung tinggi string teks.

Contoh

Misalnya, lihat Menggambar Teks dari Font Berbeda pada Baris yang Sama.

Catatan

Header wingdi.h mendefinisikan GetTextExtentPoint32 sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosektor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

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 wingdi.h (sertakan Windows.h)
Pustaka Gdi32.lib
DLL Gdi32.dll

Lihat juga

ExtTextOut

Fungsi Font dan Teks

Gambaran Umum Font dan Teks

UKURAN

SetTextCharacterExtra

SetTextJustification