本文整理汇总了C++中CAutoRefPtr::MeasureText方法的典型用法代码示例。如果您正苦于以下问题:C++ CAutoRefPtr::MeasureText方法的具体用法?C++ CAutoRefPtr::MeasureText怎么用?C++ CAutoRefPtr::MeasureText使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CAutoRefPtr
的用法示例。
在下文中一共展示了CAutoRefPtr::MeasureText方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MeasureItem
void SMenuODWnd::MeasureItem( LPMEASUREITEMSTRUCT lpMeasureItemStruct )
{
if(lpMeasureItemStruct->CtlType != ODT_MENU) return;
SMenuItemData *pdmmi=(SMenuItemData*)lpMeasureItemStruct->itemData;
if(pdmmi)
{
//menu item
lpMeasureItemStruct->itemHeight = m_nItemHei;
lpMeasureItemStruct->itemWidth = m_szIcon.cx+m_nIconMargin*2;
CAutoRefPtr<IRenderTarget> pRT;
GETRENDERFACTORY->CreateRenderTarget(&pRT,0,0);
CAutoRefPtr<IFont> oldFont;
pRT->SelectObject(m_hFont,(IRenderObj**)&oldFont);
SIZE szTxt;
pRT->MeasureText(pdmmi->itemInfo.strText,pdmmi->itemInfo.strText.GetLength(),&szTxt);
lpMeasureItemStruct->itemWidth += szTxt.cx+m_nTextMargin*2;
pRT->SelectObject(oldFont);
}
else
{
// separator
lpMeasureItemStruct->itemHeight = m_pSepSkin?m_pSepSkin->GetSkinSize().cy:3;
lpMeasureItemStruct->itemWidth=0;
}
}
示例2: UpdateScrollInfo
void SScrollText::UpdateScrollInfo(CSize size)
{
CAutoRefPtr<IRenderTarget> pRT;
GETRENDERFACTORY->CreateRenderTarget(&pRT,0,0);
BeforePaintEx(pRT);
SIZE sz;
pRT->MeasureText(m_strText,m_strText.GetLength(),&sz);
if(sz.cx - size.cx>0)
{
m_nScrollWidth = sz.cx;
if (m_nRollType==1)
{
m_nOffset=-size.cx;
}
OnShowWindow(IsVisible(TRUE), 0);
}
else
{
m_nOffset = 0;
m_nScrollWidth = 0;
}
}