//声明: GetTextAlign( DC: HDC; {设备环境句柄} ): UINT; {返回对齐选项值; 如果返回 GDI_ERROR 表示设置失败} //如果调用成功则返回下面常数值之一或它们的组合: TA_NOUPDATECP = 0; {每一次文本输出后, 不更新当前位置} TA_UPDATECP = 1; {每一次文本输出后, 更新当前位置} TA_LEFT = 0; {起始于文本外接矩形左边} TA_RIGHT = 2; {起始于文本外接矩形右边} TA_CENTER = 6; {起始于文本外接矩形的水平中心} TA_TOP = 0; {起始于文本外接矩形顶边} TA_BOTTOM = 8; {起始于文本外接矩形底边} TA_BASELINE = 24; {起始于文本基线} TA_RTLREADING = $100; {文本顺序从右到左, 只对特殊语种} VTA_BASELINE = TA_BASELINE; {垂直基线} VTA_LEFT = TA_BOTTOM; VTA_RIGHT = TA_TOP; VTA_CENTER = TA_CENTER; {垂直居中} VTA_BOTTOM = TA_RIGHT; VTA_TOP = TA_LEFT;
例子:
//绘画字体 void CDFontEx::DrawText( CDC* pDC, LPCTSTR str, int XPos, int YPos, COLORREF colorref, UINT nFormat) { if( m_pWnd == NULL ) return; if ( CD2DEngine::GetD2DEngine() ) { CD2DEngine::GetD2DEngine()->DrawText(m_pWnd, m_pD2DFont, str, XPos, YPos, colorref, nFormat); } else { UINT uOldAlign = 0; UINT uNweAlign = 0; COLORREF OldColor = pDC->SetTextColor(colorref); CFont* pOldFont = pDC->SelectObject(&m_GDIFont); if ( nFormat&DT_CENTER ) uNweAlign |= TA_CENTER; else if( nFormat&DT_RIGHT ) uNweAlign |= TA_RIGHT; else uNweAlign |= TA_LEFT; if( nFormat&DT_BOTTOM ) uNweAlign |= TA_BOTTOM; else uNweAlign |= TA_TOP; uOldAlign = pDC->SetTextAlign(uNweAlign); pDC->TextOut( XPos, YPos, str ); pDC->SetTextColor(OldColor); pDC->SetTextAlign(uOldAlign); pDC->SelectObject(pOldFont); } }