Есть ли способ получить ширину строки в пикселях, не используя CDC или CDC, не связанный с дисплеем.Класс, который должен получить ширину строки, не наследуется от CWnd, чтобы использовать CWnd :: GetDC (), и нет способа передать существующий CDC в функцию.фиктивный CDC, который не связан с дисплеем, однако это приводит к сбою MFC.В идеале что-то вроде:
m_font = new CFont();
m_font->CreatePointFont(size * 10, _T("Arial"));
m_tempCDC = new CDC();
m_tempCDC->SelectObject(m_font);
return m_tempCDC->GetOutputTextExtent(_T("Test")).cx;
РЕДАКТИРОВАТЬ: должны заменить переменную имени шрифта для строкового литерала.