Bagikan melalui


Cara Menggunakan Pengikatan Font di Kontrol Edit Kaya

Microsoft Rich Edit 3.0 menetapkan karakter yang diatur ke karakter teks biasa tergantung pada konteksnya. Beberapa contohnya adalah:

  • Karakter Yunani ditetapkan GREEK_CHARSET.
  • Simbol Hangul ditetapkan HANGUL_CHARSET.
  • Karakter Tionghoa ditetapkan SHIFTJIS_CHARSET jika karakter kana ditemukan di dekatnya, atau GB2312_CHARSET jika tidak ada kana yang ditemukan di dekatnya.
  • Karakter ANSI non-netral ditetapkan ANSI_CHARSET dalam peristiwa apa pun.

Catatan

Kontrol edit kaya menggunakan Unicode secara internal, sehingga penggunaan set karakter ini berbeda dari yang asli yang digunakan dalam spesifikasi font. Tetapi struktur CHARFORMAT memiliki tempat yang terdefinisi dengan baik untuk kumpulan karakter.

 

Karakter netral seperti kosong dan digit diberi set karakter tergantung pada konteksnya. Misalnya, kosong yang dikelilingi oleh karakter dari set karakter yang sama mendapatkan kumpulan karakter tersebut. Netral dan digit yang digunakan untuk teks dua arah ditetapkan set karakter dengan cara yang didasarkan pada algoritma dua arah Unicode.

Apa yang perlu Anda ketahui

Teknologi

Prasyarat

  • C/C++
  • Pemrograman Antarmuka Pengguna Windows

Petunjuk

Menggunakan Pengikatan Font dalam Kontrol Edit Kaya

Setelah set karakter ditetapkan, Rich Edit memindai teks di sekitar titik penyisipan ke depan dan ke belakang untuk menemukan font terdekat yang telah digunakan untuk kumpulan karakter. Jika tidak ada font yang ditemukan untuk set karakter, Rich Edit menggunakan font yang dipilih oleh klien untuk kumpulan karakter tersebut. Jika klien belum menentukan font untuk kumpulan karakter, Rich Edit menggunakan font default untuk kumpulan karakter tersebut. Jika klien menginginkan beberapa font lain, klien selalu dapat mengubahnya, tetapi pendekatan ini akan berfungsi sebagian besar waktu. Pilihan font default saat ini didasarkan pada tabel berikut. Perhatikan bahwa font default diatur per proses, dan ada daftar terpisah untuk penggunaan UI dan untuk penggunaan non-UI.

Bahasa Nama font UI Ukuran font UI nama font non-UI ukuran font non-UI
Barat, CE, ME, Vietnam Tahoma 8 Arial 10
Jepang MS UI Gothic 9 MS P Gothic 10
Korea Gulim 9 Gulim 9
Bahasa Tionghoa Sederhana Simsun 9 Simsun 10
Mandarin Tradisional PMingLiU 9 PMingLiU 9
Thailand MS Sans Serif 8 Tahoma 14
Simbol Wingdings 8 Wingdings 10
Devanagari Mangal 8 Mangal 10
Tamil Latha 8 Latha 10
Bahasa Georgia, Bahasa Armenia Arial Unicode 8 Arial Unicode 10

 

Oleh karena itu, dalam tabel pengikatan font default (entri memiliki kumpulan karakter, nama font, dan ukuran), Rich Edit memungkinkan ANSI_CHARSET untuk mencocokkan beberapa kumpulan karakter, sementara kumpulan karakter yang sesuai cocok dengan font lain berdasarkan satu-ke-satu. Lebih tepatnya, pengeditan kaya menggunakan pilihan ANSI_CHARSET setiap kali tidak ada alternatif lain yang ditemukan. Anda akan dapat menentukan granularitas yang lebih halus daripada ini; misalnya, tetapkan ARABIC_CHARSET tertentu untuk eksekusi Arab, font Yunani tertentu untuk eksekusi Yunani, dan sebagainya. Granularitas yang lebih halus ini juga akan digunakan jika font dengan stempel set karakter yang diinginkan ditemukan di suatu tempat di dokumen sebelum area yang terikat font.

Perhatikan bahwa Rich Edit saat ini tidak menangani glyph yang hilang dalam font yang mengklaim mendukung kumpulan karakter tetapi tidak lengkap. Pada waktu tampilan dalam skrip yang kompleks, Rich Edit akhirnya mengetahui bahwa glyph seperti itu hilang, tetapi tidak menyebabkan penyimpanan pencadangan menggunakan font baru. Biasanya, penautan font yang mendasar dari sistem operasi akan mencapai ini.

Keterangan

Rich Edit 4.1: Untuk mengatur font default untuk skrip, panggil EM_SETCHARFORMAT dengan CHARFORMAT2, menentukan nilai untuk anggota yHeight, bCharSet, bPitchAndFamily, szFaceName, dan lcid. Selain itu, untuk mendapatkan font default untuk halaman kode tertentu, panggil EM_GETCHARFORMAT dengan CHARFORMAT2, menentukan nilai untuk anggota bCharSet dan lcid.

Menggunakan Kontrol Edit Kaya

Demo kontrol umum Windows (CppWindowsCommonControls)