Fungsi GetTextExtentExPointA (wingdi.h)

Fungsi GetTextExtentExPoint mengambil jumlah karakter dalam string tertentu yang akan pas dalam ruang tertentu dan mengisi array dengan tingkat teks untuk masing-masing karakter tersebut. (Tingkat teks adalah jarak antara awal spasi dan karakter yang akan pas di spasi.) Informasi ini berguna untuk penghitungan pembungkus kata.

Sintaks

BOOL GetTextExtentExPointA(
  [in]  HDC    hdc,
  [in]  LPCSTR lpszString,
  [in]  int    cchString,
  [in]  int    nMaxExtent,
  [out] LPINT  lpnFit,
  [out] LPINT  lpnDx,
  [out] LPSIZE lpSize
);

Parameter

[in] hdc

Handel ke konteks perangkat.

[in] lpszString

Penunjuk ke string yang dihentikan null yang jangkauannya akan diambil.

[in] cchString

Jumlah karakter dalam string yang ditujukkan oleh parameter lpszStr . Untuk panggilan ANSI, ini menentukan panjang string dalam byte dan untuk Unicode, ia menentukan panjang string dalam WORD. Perhatikan bahwa untuk fungsi ANSI, karakter di halaman kode SBCS masing-masing mengambil satu byte, sementara sebagian besar karakter di halaman kode DBCS mengambil dua byte; untuk fungsi Unicode, karakter Unicode yang saat ini ditentukan (yang ada di Basic Multilingual Plane (BMP)) adalah satu WORD sedangkan pengganti Unicode adalah dua WORD.

[in] nMaxExtent

Lebar maksimum yang diperbolehkan, dalam unit logis, dari string yang diformat.

[out] lpnFit

Penunjuk ke bilangan bulat yang menerima hitungan jumlah maksimum karakter yang akan pas dalam spasi yang ditentukan oleh parameter nMaxExtent . Ketika parameter lpnFit adalah NULL, parameter nMaxExtent diabaikan.

[out] lpnDx

Penunjuk ke array bilangan bulat yang menerima tingkat string parsial. Setiap elemen dalam array memberikan jarak, dalam unit logis, antara awal string dan salah satu karakter yang pas dalam spasi yang ditentukan oleh parameter nMaxExtent . Array ini harus memiliki setidaknya sebanyak karakter yang ditentukan oleh parameter cchString karena seluruh array digunakan secara internal. Fungsi mengisi array dengan tingkat yang valid untuk karakter sebanyak yang ditentukan oleh parameter lpnFit . Nilai apa pun di sisa array harus diabaikan. Jika alpDx adalah NULL, fungsi tidak menghitung lebar string parsial.

Untuk skrip kompleks, di mana urutan karakter dapat diwakili oleh sejumlah glyph, nilai dalam array alpDx hingga angka yang ditentukan oleh parameter lpnFit cocok satu-ke-satu dengan titik kode. Sekali lagi, Anda harus mengabaikan nilai lainnya dalam array alpDx .

[out] lpSize

Penunjuk ke struktur SIZE yang menerima dimensi string, dalam unit logis. Parameter ini tidak boleh NULL.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan bukan nol.

Jika fungsi gagal, nilai yang dikembalikan adalah nol.

Keterangan

Jika parameter lpnFit dan alpDxadalah NULL, memanggil fungsi GetTextExtentExPoint setara dengan memanggil fungsi GetTextExtentPoint .

Untuk versi ANSI dari GetTextExtentExPoint, array lpDx memiliki jumlah nilai INT yang sama seperti ada byte di lpString. Nilai INT yang sesuai dengan dua byte karakter DBCS masing-masing adalah sejauh mana seluruh karakter komposit.

Catatan, nilai alpDx untuk GetTextExtentExPoint tidak sama dengan nilai lpDx untuk ExtTextOut. Untuk menggunakan nilai alpDx di lpDx, Anda harus terlebih dahulu memprosesnya.

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 }.

Fungsi ini mengembalikan jangkauan setiap karakter berturut-turut dalam string. Ketika ini dibulatkan ke unit logis, Anda mendapatkan hasil yang berbeda dari apa yang dikembalikan dari GetCharWidth, yang mengembalikan lebar setiap karakter yang dibulatkan ke unit logis.

Catatan

Header wingdi.h mendefinisikan GetTextExtentExPoint 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

Fungsi Font dan Teks

Font dan Gambaran Umum Teks

GetTextExtentPoint

UKURAN