Bagikan melalui


Fungsi DrawTextExA (winuser.h)

Fungsi DrawTextEx menggambar teks yang diformat dalam persegi panjang yang ditentukan.

Sintaks

int DrawTextExA(
  [in]      HDC              hdc,
  [in, out] LPSTR            lpchText,
  [in]      int              cchText,
  [in, out] LPRECT           lprc,
  [in]      UINT             format,
  [in]      LPDRAWTEXTPARAMS lpdtp
);

Parameter

[in] hdc

Handel ke konteks perangkat untuk menggambar.

[in, out] lpchText

Penunjuk ke string yang berisi teks yang akan digambar. Jika parameter cchText adalah -1, string harus dihentikan null.

Jika dwDTFormat menyertakan DT_MODIFYSTRING, fungsi dapat menambahkan hingga empat karakter tambahan ke string ini. Buffer yang berisi string harus cukup besar untuk mengakomodasi karakter tambahan ini.

[in] cchText

Panjang string yang ditujukkan oleh lpchText. Jika cchText adalah -1, maka parameter lpchText diasumsikan sebagai penunjuk ke string null-dihentikan dan DrawTextEx menghitung jumlah karakter secara otomatis.

[in, out] lprc

Penunjuk ke struktur RECT yang berisi persegi panjang, dalam koordinat logis, di mana teks akan diformat.

[in] format

Opsi pemformatan. Parameter ini bisa menjadi satu atau beberapa nilai berikut.

Nilai Makna
DT_BOTTOM
Meratakan teks ke bagian bawah persegi. Nilai ini hanya digunakan dengan nilai DT_SINGLELINE.
DT_CALCRECT
Menentukan lebar dan tinggi persegi. Jika ada beberapa baris teks, DrawTextEx menggunakan lebar persegi yang diacu oleh parameter lprc dan memperluas dasar persegi panjang untuk mengikat baris terakhir teks. Jika hanya ada satu baris teks, DrawTextEx memodifikasi sisi kanan persegi sehingga mengikat karakter terakhir dalam baris. Dalam kedua kasus, DrawTextEx mengembalikan tinggi teks yang diformat, tetapi tidak menggambar teks.
DT_CENTER
Tengahkan teks secara horizontal dalam persegi.
DT_EDITCONTROL
Menduplikasi karakteristik tampilan teks dari kontrol pengeditan multibaris. Secara khusus, lebar karakter rata-rata dihitung dengan cara yang sama seperti untuk kontrol edit, dan fungsi tidak menampilkan baris terakhir yang terlihat sebagian.
DT_END_ELLIPSIS
Untuk teks yang ditampilkan, mengganti akhir string dengan elipsis sehingga hasilnya pas dalam persegi panjang yang ditentukan. Kata apa pun (bukan di akhir string) yang melampaui batas persegi panjang dipotong tanpa elipsis. String tidak dimodifikasi kecuali bendera DT_MODIFYSTRING ditentukan.

Bandingkan dengan DT_PATH_ELLIPSIS dan DT_WORD_ELLIPSIS.

DT_EXPANDTABS
Memperluas karakter tab. Jumlah karakter default per tab adalah delapan.
DT_EXTERNALLEADING
Menyertakan font eksternal di depan dalam tinggi baris. Biasanya, leading eksternal tidak disertakan dalam tinggi baris teks.
DT_HIDEPREFIX
Mengabaikan karakter awalan ampersand (&) dalam teks. Huruf berikut tidak akan digarisbawahi, tetapi karakter awalan mnemonik lainnya masih diproses.

Contoh:

string input: "A&bc&&d"

normal: "Abc&d"

DT_HIDEPREFIX: "Abc&d"

Bandingkan dengan DT_NOPREFIX dan DT_PREFIXONLY.

DT_INTERNAL
Menggunakan font sistem untuk menghitung metrik teks.
DT_LEFT
Meratakan teks ke kiri.
DT_MODIFYSTRING
Memodifikasi string yang ditentukan agar sesuai dengan teks yang ditampilkan. Nilai ini tidak berpengaruh kecuali DT_END_ELLIPSIS atau DT_PATH_ELLIPSIS ditentukan.
DT_NOCLIP
Gambar tanpa kliping. DrawTextEx agak lebih cepat ketika DT_NOCLIP digunakan.
DT_NOFULLWIDTHCHARBREAK
Mencegah pemisah baris pada DBCS (string karakter lebar ganda), sehingga aturan pemisah baris setara dengan string SBCS. Misalnya, ini dapat digunakan di jendela Korea, untuk lebih banyak keterbacaan label ikon. Nilai ini tidak berpengaruh kecuali DT_WORDBREAK ditentukan.
DT_NOPREFIX
Menonaktifkan pemrosesan karakter awalan. Biasanya, DrawTextEx menginterpretasikan karakter ampersand (&) mnemonic-prefix sebagai direktif untuk menggarisbawahi karakter berikut, dan karakter awalan mnemonik ampersand ganda (&&) sebagai arahan untuk mencetak satu ampersand. Dengan menentukan DT_NOPREFIX, pemrosesan ini dimatikan. Bandingkan dengan DT_HIDEPREFIX dan DT_PREFIXONLY
DT_PATH_ELLIPSIS
Untuk teks yang ditampilkan, mengganti karakter di tengah string dengan elipsis sehingga hasilnya pas dalam persegi panjang yang ditentukan. Jika string berisi karakter garis miring terbalik (\\), DT_PATH_ELLIPSIS mempertahankan sebanyak mungkin teks setelah garis miring terbalik terakhir. String tidak dimodifikasi kecuali bendera DT_MODIFYSTRING ditentukan.

Bandingkan dengan DT_END_ELLIPSIS dan DT_WORD_ELLIPSIS.

DT_PREFIXONLY
Hanya menggambar garis bawah pada posisi karakter setelah karakter awalan ampersand (&). Tidak menggambar karakter apa pun dalam string.

Contoh:

string input: "A&bc&&d"

normal: "Abc&d"

AWALAN: " _ "

Bandingkan dengan DT_NOPREFIX dan DT_HIDEPREFIX.

DT_RIGHT
Meratakan teks ke kanan.
DT_RTLREADING
Tata letak dalam urutan pembacaan kanan-ke-kiri untuk teks dua arah saat font yang dipilih ke hdc adalah font Ibrani atau Arab. Urutan pembacaan default untuk semua teks adalah kiri-ke-kanan.
DT_SINGLELINE
Menampilkan teks pada satu baris saja. Pengangkutan kembali dan umpan baris tidak merusak garis.
DT_TABSTOP
Mengatur perhentian tab. Struktur DRAWTEXTPARAMS yang diacu oleh parameter lpDTParams menentukan jumlah lebar karakter rata-rata per perhentian tab.
DT_TOP
Meratakan teks ke bagian atas persegi.
DT_VCENTER
Tengahkan teks secara vertikal. Nilai ini hanya digunakan dengan nilai DT_SINGLELINE.
DT_WORDBREAK
Memecah kata-kata. Garis secara otomatis rusak di antara kata-kata jika kata meluas melewati tepi persegi panjang yang ditentukan oleh parameter lprc . Urutan umpan jalur kembali pengangkutan juga merusak garis.
DT_WORD_ELLIPSIS
Memotong kata apa pun yang tidak pas di persegi panjang dan menambahkan elipsis.

Bandingkan dengan DT_END_ELLIPSIS dan DT_PATH_ELLIPSIS.

[in] lpdtp

Penunjuk ke struktur DRAWTEXTPARAMS yang menentukan opsi pemformatan tambahan. Parameter ini bisa NULL.

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan adalah tinggi teks dalam unit logis. Jika DT_VCENTER atau DT_BOTTOM ditentukan, nilai yang dikembalikan adalah offset dari lprc->top ke bagian bawah teks yang digambar

Jika fungsi gagal, nilai yang dikembalikan adalah nol.

Keterangan

Fungsi DrawTextEx hanya mendukung font yang escapement dan orientasinya adalah nol.

Mode perataan teks untuk konteks perangkat harus menyertakan bendera TA_LEFT, TA_TOP, dan TA_NOUPDATECP.

Catatan

Header winuser.h mendefinisikan DrawTextEx sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor 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 winuser.h (termasuk Windows.h)
Pustaka User32.lib
DLL User32.dll
Set API ext-ms-win-ntuser-misc-l1-2-0 (diperkenalkan dalam Windows 8.1)

Lihat juga

DRAWTEXTPARAMS

DrawText

Fungsi Font dan Teks

Gambaran Umum Font dan Teks