本文整理汇总了C++中Font::Detach方法的典型用法代码示例。如果您正苦于以下问题:C++ Font::Detach方法的具体用法?C++ Font::Detach怎么用?C++ Font::Detach使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Font
的用法示例。
在下文中一共展示了Font::Detach方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SelectObject
BOOL
_DC::GetTextSizeEx(std::string* pStr, Size& szText){
if( !context_ )
return FALSE;
LOGFONT lf;
FONTDef pRealFont = SelectObject(*GetFontTemp());
Font realFont;
realFont.Attach(pRealFont);
realFont.GetLogFont(&lf);
SelectObject(pRealFont);
realFont.Detach();
wchar_t wszTemp[256];
int nLen = StringHelper::UTF8ToUnicode(pStr, wszTemp, 255);
BOOL bRet = FALSE;
EmbedeedFontMan* pEmbedeedFontMan = EmbedeedFontMan::GetInstance();
int nFontId = pEmbedeedFontMan->GetEmbedeedFontId(lf.lfFaceName);
if( nFontId == -1 )
bRet = ::GetTextExtentPoint32W(context_, wszTemp, nLen, &szText);
else
bRet = pEmbedeedFontMan->GetTextSize(this, wszTemp, nLen, nFontId, szText);
return bRet;
}
示例2:
BOOL
_DC::ExtTextOutW(int x, int y, UINT options, LPCRECTDef lprect, const wchar_t* lpString, UINT c, const int * lpDx){
if( !context_ || !c )
return FALSE;
// Invalid rect area.
if( lprect && (lprect->right <= 0 || lprect->bottom <= 0) )
return FALSE;
BOOL bRet = FALSE;
LOGFONT lf;
FONTDef pRealFont = (FONTDef)SelectObject(*GetFontTemp());
Font fontReal;
fontReal.Attach (pRealFont);
fontReal.GetLogFont(&lf);
SelectObject (pRealFont);
fontReal.Detach();
EmbedeedFontMan* pEmbedeedFontMan = EmbedeedFontMan::GetInstance();
int nFontId = pEmbedeedFontMan->GetEmbedeedFontId(lf.lfFaceName);
if( nFontId == -1 )
bRet = (TRUE == ::ExtTextOutW(context_, x, y, options, lprect, lpString, c, NULL));
else
bRet = pEmbedeedFontMan->DrawTextByEmbedeedFont(nFontId, this, lpString, c, x, y, lprect);
return bRet;
}