Teks Pemformatan (GDI+)
Untuk menerapkan pemformatan khusus ke teks, inisialisasi objek StringFormat dan teruskan alamat objek tersebut ke metode DrawString kelas Grafis.
Untuk menggambar teks yang diformat dalam persegi panjang, Anda memerlukan objek Grafis, FontFamily, Font, RectF, StringFormat, dan Brush .
Meratakan Teks
Contoh berikut menggambar teks dalam persegi panjang. Setiap baris teks di tengah (sisi ke sisi), dan seluruh blok teks di tengah (atas ke bawah) dalam persegi panjang.
WCHAR string[] =
L"Use StringFormat and RectF objects to center text in a rectangle.";
FontFamily fontFamily(L"Arial");
Font font(&fontFamily, 12, FontStyleBold, UnitPoint);
RectF rectF(30.0f, 10.0f, 120.0f, 140.0f);
StringFormat stringFormat;
SolidBrush solidBrush(Color(255, 0, 0, 255));
// Center-justify each line of text.
stringFormat.SetAlignment(StringAlignmentCenter);
// Center the block of text (top to bottom) in the rectangle.
stringFormat.SetLineAlignment(StringAlignmentCenter);
graphics.DrawString(string, -1, &font, rectF, &stringFormat, &solidBrush);
Pen pen(Color(255, 0, 0, 0));
graphics.DrawRectangle(&pen, rectF);
Ilustrasi berikut ini memperlihatkan persegi panjang dan teks tengah.
Kode sebelumnya memanggil dua metode objek StringFormat : StringFormat::SetAlignment dan StringFormat::SetLineAlignment. Panggilan ke StringFormat::SetAlignment menentukan bahwa setiap baris teks dipusatkan di persegi panjang yang diberikan oleh argumen ketiga yang diteruskan ke metode DrawString . Panggilan ke StringFormat::SetLineAlignment menentukan bahwa blok teks di tengah (atas ke bawah) dalam persegi.
Nilai StringAlignmentCenter adalah elemen enumerasi StringAlignment , yang dideklarasikan dalam Gdiplusenums.h.
Pengaturan Pemberhentian Tab
Anda dapat mengatur perhentian tab untuk teks dengan memanggil metode StringFormat::SetTabStops dari objek StringFormat lalu meneruskan alamat objek StringFormat tersebut ke metode DrawString kelas Grafis .
Contoh berikut mengatur tab berhenti pada 150, 250, dan 350. Kemudian kode menampilkan daftar nama bertab dan skor pengujian.
WCHAR string[150] =
L"Name\tTest 1\tTest 2\tTest 3\n";
StringCchCatW(string, 150, L"Joe\t95\t88\t91\n");
StringCchCatW(string, 150, L"Mary\t98\t84\t90\n");
StringCchCatW(string, 150, L"Sam\t42\t76\t98\n");
StringCchCatW(string, 150, L"Jane\t65\t73\t92\n");
FontFamily fontFamily(L"Courier New");
Font font(&fontFamily, 12, FontStyleRegular, UnitPoint);
RectF rectF(10.0f, 10.0f, 450.0f, 100.0f);
StringFormat stringFormat;
SolidBrush solidBrush(Color(255, 0, 0, 255));
REAL tabs[] = {150.0f, 100.0f, 100.0f};
stringFormat.SetTabStops(0.0f, 3, tabs);
graphics.DrawString(string, -1, &font, rectF, &stringFormat, &solidBrush);
Pen pen(Color(255, 0, 0, 0));
graphics.DrawRectangle(&pen, rectF);
Ilustrasi berikut ini memperlihatkan teks bertab.
Kode sebelumnya meneruskan tiga argumen ke metode StringFormat::SetTabStops . Argumen ketiga adalah alamat array yang berisi offset tab. Argumen kedua menunjukkan bahwa ada tiga offset dalam array tersebut. Argumen pertama yang diteruskan ke StringFormat::SetTabStops adalah 0, yang menunjukkan bahwa offset pertama dalam array diukur dari posisi 0, tepi kiri persegi panjang pembatas.
Menggambar Teks Vertikal
Anda bisa menggunakan objek StringFormat untuk menentukan bahwa teks digambar secara vertikal daripada horizontal.
Contoh berikut meneruskan nilai StringFormatFlagsDirectionVertical ke metode StringFormat::SetFormatFlags dari objek StringFormat . Alamat objek StringFormat tersebut diteruskan ke metode DrawString dari kelas Grafis . Nilai StringFormatFlagsDirectionVertical adalah elemen enumerasi StringFormatFlags , yang dideklarasikan dalam Gdiplusenums.h.
WCHAR string[] = L"Vertical text";
FontFamily fontFamily(L"Lucida Console");
Font font(&fontFamily, 14, FontStyleRegular, UnitPoint);
PointF pointF(40.0f, 10.0f);
StringFormat stringFormat;
SolidBrush solidBrush(Color(255, 0, 0, 255));
stringFormat.SetFormatFlags(StringFormatFlagsDirectionVertical);
graphics.DrawString(string, -1, &font, pointF, &stringFormat, &solidBrush);
Ilustrasi berikut ini memperlihatkan teks vertikal.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk