テキストの配置を設定する
GetTextAlign 関数と SetTextAlign 関数を使用して、デバイス コンテキストのテキスト配置を照会および設定できます。 テキスト配置の設定によって、指定した位置に対するテキストの位置付け方法が決まります。 テキストは、位置の右または左に配置するか、その上に中央揃えすることができます。また、ポイントの上または下に配置することもできます。
次の例は、どの水平方向の配置フラグが設定されているかを判断する方法を示しています。
switch ((TA_LEFT | TA_RIGHT | TA_CENTER) & GetTextAlign(hdc))
{
case TA_LEFT:
.
.
.
case TA_RIGHT:
.
.
.
case TA_CENTER:
.
.
.
}
また、SetTextAlign 関数を使用して、テキスト出力関数が呼び出されたときに現在の位置を更新することもできます。 たとえば、次の例では 、SetTextAlign 関数を使用して 、TextOut 関数が呼び出されたときに現在の位置を更新します。 この例では、 cArial パラメーターは 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);
注意
選択したテキストが正しくレンダリングされないため、ScriptStringOut を使用している場合は、SetTextAlign を TA_UPDATECPと共に使用しないでください。 このフラグを使用する必要がある場合は、問題を回避するために、必要に応じて設定を解除してリセットできます。