Bagikan melalui


Fungsi DrawTextA (winuser.h)

Fungsi DrawText menggambar teks yang diformat dalam persegi panjang yang ditentukan. Ini memformat teks sesuai dengan metode yang ditentukan (memperluas tab, membenarkan karakter, garis pemisah, dan sebagainya).

Untuk menentukan opsi pemformatan tambahan, gunakan fungsi DrawTextEx .

Sintaks

int DrawTextA(
  [in]      HDC    hdc,
  [in, out] LPCSTR lpchText,
  [in]      int    cchText,
  [in, out] LPRECT lprc,
  [in]      UINT   format
);

Parameter

[in] hdc

Handel ke konteks perangkat.

[in, out] lpchText

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

Jika uFormat 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, dalam karakter, dari string. Jika cchText adalah -1, maka parameter lpchText diasumsikan sebagai penunjuk ke string yang dihentikan null dan DrawText menghitung jumlah karakter secara otomatis.

[in, out] lprc

Penunjuk ke struktur RECT yang berisi persegi panjang (dalam koordinat logis) tempat teks akan diformat.

[in] format

Metode pemformatan teks. 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, DrawText menggunakan lebar persegi panjang yang diacu oleh parameter lpRect dan memperluas dasar persegi panjang untuk mengikat baris terakhir teks. Jika kata terbesar lebih lebar dari persegi panjang, lebar akan diperluas. Jika teks kurang dari lebar persegi, lebar dikurangi. Jika hanya ada satu baris teks, DrawText memodifikasi sisi kanan persegi panjang sehingga mengikat karakter terakhir dalam baris. Dalam kedua kasus, DrawText 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, jika akhir string tidak pas di persegi panjang, teks akan terpotong dan elipsis ditambahkan. Jika kata yang tidak berada di akhir string melampaui batas persegi panjang, kata tersebut 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. Nilai DT_WORD_ELLIPSIS, DT_PATH_ELLIPSIS, dan DT_END_ELLIPSIS tidak dapat digunakan dengan nilai DT_EXPANDTABS.
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. DrawText 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, DrawText menafsirkan karakter awalan mnemonic & sebagai arahan untuk menggarisbawahi karakter berikut, dan karakter awalan mnemonic && sebagai arahan untuk mencetak satu &. Dengan menentukan DT_NOPREFIX, pemrosesan ini dimatikan. Misalnya,

Contoh:

string input: "A&bc&&d"

normal: "Abc&d"

DT_NOPREFIX: "A&bc&&d"

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 lain dalam string. Misalnya,

Contoh:

string input: "A&bc&&d"n

normal: "Abc&d"

DT_PREFIXONLY: " _ "

Bandingkan dengan DT_HIDEPREFIX dan DT_NOPREFIX.

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. Bit 15-8 (byte urutan tinggi dari kata berurutan rendah) dari parameter uFormat menentukan jumlah karakter untuk setiap tab. Jumlah karakter default per tab adalah delapan. Nilai DT_CALCRECT, DT_EXTERNALLEADING, DT_INTERNAL, DT_NOCLIP, dan DT_NOPREFIX tidak dapat digunakan dengan nilai DT_TABSTOP.
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 akan meluas melewati tepi persegi panjang yang ditentukan oleh parameter lpRect . Urutan umpan jalur kembali pengangkutan juga merusak garis.

Jika ini tidak ditentukan, output berada di satu baris.

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.

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 lpRect->top ke bagian bawah teks yang digambar

Jika fungsi gagal, nilai yang dikembalikan adalah nol.

Keterangan

Fungsi DrawText menggunakan font, warna teks, dan warna latar belakang yang dipilih konteks perangkat untuk menggambar teks. Kecuali format DT_NOCLIP digunakan, DrawText mengklip teks sehingga tidak muncul di luar persegi panjang yang ditentukan. Perhatikan bahwa teks dengan overhang yang signifikan dapat diklip, misalnya, "W" awal dalam string teks atau teks yang dalam miring. Semua pemformatan diasumsikan memiliki beberapa baris kecuali format DT_SINGLELINE ditentukan.

Jika font yang dipilih terlalu besar untuk persegi panjang yang ditentukan, fungsi DrawText tidak mencoba untuk mengganti font yang lebih kecil.

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

Catatan

Header winuser.h mendefinisikan DrawText 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

   
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-1-0 (diperkenalkan dalam Windows 8)

Lihat juga

DrawTextEx

Fungsi Font dan Teks

Gambaran Umum Font dan Teks

GrayString

RECT

TabbedTextOut

TextOut