2个回答
展开全部
刚才已经回答你的问题,你的CString不能只有""模式,要加L“”,以代表其实UNICODE模式的。
更多追问追答
追问
改过以后
CSize sz = pDC->GetTextExtent(str);
无法判断出ⓟ长度了、
请问如何解决呢?
追答
我写了个函数,判断字符串的size,注意判断时,要附带你选择字体和字符串。
void CalculateTextSize()
{
if ( m_bAutoCalText && ::IsWindow(m_hWnd) )
{
// Calculate text size.
CClientDC dc(m_hWnd);
dc.SelectFont(m_Font);
dc.SetTextAlign(m_uTextStyle);
CSize szText;
CString strText =_T("");
int nHeight = 0;
int nWidth = 0;
// Get max text length and width.
for (int i = 0; i < m_strText.GetLength(); i++)
{
strText += m_strText[i];
if (m_strText[i] == '\n' ||m_strText[i] == '\r')
{
dc.GetTextExtent(strText,strText.GetLength(), &szText);
}
}
ResizeClient(nWidth, nHeight);
}
Invalidate();
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询