本文整理汇总了C++中LPD3DXFONT::GetTextMetrics方法的典型用法代码示例。如果您正苦于以下问题:C++ LPD3DXFONT::GetTextMetrics方法的具体用法?C++ LPD3DXFONT::GetTextMetrics怎么用?C++ LPD3DXFONT::GetTextMetrics使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LPD3DXFONT
的用法示例。
在下文中一共展示了LPD3DXFONT::GetTextMetrics方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DrawText
VOID CDXCtrlTreeview::DrawText()
{
TEXTMETRIC tm;
LPD3DXFONT pFont;
RECT rect, irect;
PLISTITEM pItem;
D3DCOLOR Color;
DWORD dwIndex;
DWORD dwIndexTextSize;
SIZE size;
char szBuff[8];
if(m_pManager)
{
GetRect(&rect);
pFont = m_pManager->GetFixedWidthFont();
pFont->GetTextMetrics(&tm);
GetTextExtentPoint32(pFont->GetDC(), "999", 3, &size);
if(m_bShowIndex)
dwIndexTextSize = size.cx;
else
dwIndexTextSize = 0;
pItem = m_pList;
for(dwIndex = 0; dwIndex < m_dwTopIndex; dwIndex++)
pItem = pItem->link;
rect.left += (5 * m_dwFrameWidth / 8) + tm.tmHeight;
rect.top += (5 * m_dwFrameWidth / 8);
rect.bottom -= (5 * m_dwFrameWidth / 8);
rect.right -= ((5 * m_dwFrameWidth / 8) + 16 + dwIndexTextSize);
for(; rect.top <= rect.bottom - tm.tmHeight && pItem; dwIndex++)
{
if(pItem->bGroup || pItem->bVisible)
{
if(dwIndex == m_dwSelectedIndex)
{
Color = m_SelectedColor;
}
else
{
if(pItem->bGroup)
Color = m_GroupColor;
else
Color = m_ItemColor;
}
pFont->DrawTextA(m_pManager->GetFontSprite(), pItem->szText, -1, &rect, DT_TOP | DT_LEFT, Color);
if(m_bShowIndex && pItem->bGroup == FALSE)
{
irect = rect;
irect.left = irect.right;
irect.right = irect.left + dwIndexTextSize;
pFont->DrawTextA(m_pManager->GetFontSprite(), itoa(dwIndex, szBuff, 10), -1, &irect, DT_TOP | DT_RIGHT, Color);
}
rect.top += tm.tmHeight;
}
pItem = pItem->link;
}
}
}