Bagikan melalui


Mengatur Perataan Teks

Anda dapat mengkueri dan mengatur perataan teks untuk konteks perangkat dengan menggunakan fungsi GetTextAlign dan SetTextAlign . Pengaturan perataan teks menentukan bagaimana teks diposisikan relatif terhadap lokasi tertentu. Teks dapat diratakan ke kanan atau kiri posisi atau di tengahnya; juga dapat diselaraskan di atas atau di bawah titik .

Contoh berikut menunjukkan metode untuk menentukan bendera perataan horizontal mana yang diatur:

switch ((TA_LEFT | TA_RIGHT | TA_CENTER) & GetTextAlign(hdc)) 
{ 
    case TA_LEFT: 
       . 
       . 
       . 
    case TA_RIGHT: 
       . 
       . 
       . 
    case TA_CENTER: 
       . 
       . 
       . 
} 

Anda juga dapat menggunakan fungsi SetTextAlign untuk memperbarui posisi saat ini saat fungsi output teks dipanggil. Misalnya, contoh berikut menggunakan fungsi SetTextAlign untuk memperbarui posisi saat ini saat fungsi TextOut dipanggil. Dalam contoh ini, parameter cArial adalah bilangan bulat yang menentukan jumlah font Arial.

UINT uAlignPrev; 
char szCount[8];
HRESULT hr;
size_t * pcch; 
 
uAlignPrev = SetTextAlign(hdc, TA_UPDATECP); 
MoveToEx(hdc, 10, 50, (LPPOINT) NULL); 
TextOut(hdc, 0, 0, "Number of Arial fonts: ", 23); 
itoa(cArial, szCount, 10); 

hr = StringCchLength(szCount, 9, pcch);
if (FAILED(hr))
{
// TODO: write error handler 
}
 
TextOut(hdc, 0, 0, (LPSTR) szCount, *pcch); 
SetTextAlign(hdc, uAlignPrev); 

Catatan

Anda tidak boleh menggunakan SetTextAlign dengan TA_UPDATECP saat Anda menggunakan ScriptStringOut, karena teks yang dipilih tidak dirender dengan benar. Jika Anda harus menggunakan bendera ini, Anda dapat membatalkan pengaturan dan mengatur ulang seperlunya untuk menghindari masalah.