pdc-> GetOutputTextExtent()崩溃

时间:2019-04-26 15:46:54

标签: visual-c++

1 个答案:

答案 0 :(得分:0)

看来手册是错误的。在内部,它是这样实现的:

_AFXWIN_INLINE CSize CDC::

GetOutputTextExtent(LPCTSTR lpszString, int nCount) const
    {
        ASSERT(m_hDC != NULL);
        SIZE size;
        VERIFY(::GetTextExtentPoint32(m_hDC, lpszString, nCount, &size));
        return size;
    }

而且,GetTextExtentPoint32文档没有提到-1将自动计算。

但是,有一个重载兄弟对象,它只接受一个本身会计数的字符串:

_AFXWIN_INLINE CSize CDC::GetOutputTextExtent(const CString& str) const
    {
        ASSERT(m_hDC != NULL);
        SIZE size;
        VERIFY(::GetTextExtentPoint32(m_hDC, str, (int)str.GetLength(), &size));
        return size;
    }