Bagikan melalui


Fungsi ScriptJustify (usp10.h)

Membuat tabel lebar lanjutan untuk memungkinkan pembenaran teks saat diteruskan ke fungsi ScriptTextOut .

Sintaks

HRESULT ScriptJustify(
  [in]  const SCRIPT_VISATTR *psva,
  [in]  const int            *piAdvance,
  [in]  int                  cGlyphs,
  [in]  int                  iDx,
  [in]  int                  iMinKashida,
  [out] int                  *piJustify
);

Parameter

[in] psva

Penunjuk ke array, panjang yang ditunjukkan oleh cGlyph, berisi struktur SCRIPT_VISATTR . Setiap struktur berisi atribut visual untuk glyph dalam baris untuk diproses.

[in] piAdvance

Penunjuk ke array lebar lanjutan, panjang yang ditunjukkan oleh cGlyphs, diperoleh dari panggilan sebelumnya ke ScriptPlace.

[in] cGlyphs

Jumlah glyph untuk array yang ditunjukkan oleh psva dan piAdvance. Parameter ini juga menunjukkan jumlah glyph untuk parameter output piJustify.

[in] iDx

Lebar, dalam piksel, dari perubahan yang diinginkan, baik peningkatan penurunan.

[in] iMinKashida

Lebar minimum glyph kashida untuk dihasilkan.

[out] piJustify

Penunjuk ke buffer di mana fungsi ini mengambil array, panjang yang ditunjukkan oleh cGlyphs, berisi lebar lanjutan yang dibenarkan. Lebar rata-rata terkadang disebut "lebar sel" untuk membedakannya dari lebar muka yang tidak dibenarkan.

Nilai kembali

Mengembalikan 0 jika berhasil. Fungsi mengembalikan nilai HRESULT bukan nol jika tidak berhasil. Aplikasi dapat menguji nilai pengembalian dengan makro BERHASIL dan GAGAL .

Keterangan

Lihat Menampilkan Teks dengan Uniscribe untuk diskusi konteks di mana fungsi ini biasanya dipanggil.

Fungsi ini menyediakan implementasi sederhana dari justifikasi multibahasa. Ini menetapkan jumlah penyesuaian yang harus dilakukan pada setiap posisi glyph pada baris. Ini menafsirkan array SCRIPT_VISATTR yang dihasilkan oleh panggilan ke ScriptShape, memberikan prioritas utama pada kashida. Fungsi ini menggunakan penspasian antarkata jika tidak ada titik kashida yang tersedia. Ini menggunakan penspasian antarkarakter jika tidak ada titik interword yang tersedia.

Catatan Pemformat teks canggih mungkin menghasilkan array delta dx mereka sendiri dengan menggabungkan fitur khusus formatter dengan informasi yang diambil oleh ScriptShape dalam array SCRIPT_VISATTR .
 
Aplikasi harus melewati lebar lanjutan yang dibenarkan yang dihasilkan oleh ScriptJustify ke ScriptTextOut dalam parameter piJustify .

ScriptJustify membuat array rata-rata yang berisi lebar muka yang diperbarui untuk setiap glyph. Saat lebar muka untuk glyph ditingkatkan, lebar ekstra dirender di sebelah kanan glyph, dengan spasi putih atau, untuk teks Arab, kashida.

Catatan Penyisipan Kashida terjadi di sebelah kanan glyph untuk membenarkan secara visual. Microsoft Word dan Microsoft PowerPoint menggunakan konsep ini. Setiap perubahan dalam algoritma penempatan kashida harus menyertai perubahan penangan ScriptTextOut yang sesuai untuk skrip tertentu, misalnya, penangan justifikasi TextOut Arab.
 
Terkadang aplikasi mencoba menangani glyph yang tidak dapat dibenarkan, dalam hal ini anggota uJustificationSCRIPT_VISATTR diatur ke SCRIPT_JUSTIFY_NONE. Dalam hal ini, ScriptJustify menyalin array input yang ditunjukkan oleh piAdvance ke array output yang ditunjukkan oleh piJustify dan mengembalikan S_FALSE ke aplikasi.
Penting Dimulai dengan Windows 8: Untuk mempertahankan kemampuan untuk berjalan pada Windows 7, modul yang menggunakan Uniscribe harus menentukan Usp10.lib sebelum gdi32.lib dalam daftar pustakanya.
 

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 usp10.h
Pustaka Usp10.lib
DLL Usp10.dll
Redistribusi Internet Explorer 5 atau yang lebih baru pada Windows Me/98/95

Lihat juga

Menampilkan Teks dengan Uniscribe

SCRIPT_VISATTR

Tempat Skrip

ScriptShape

ScriptTextOut

Uniscribe

Fungsi Uniscribe