Прежде всего, поле редактирования - это элемент пользовательского интерфейса, который позволяет пользователю печатать текст, но отправленные вами образцы строк скорее выглядят как статус или результат. Придется ли пользователю печатать что-то вроде «FAILED - SELF TEST»? Я думаю, что вам скорее нужен элемент управления только для чтения, такой как статический элемент управления (обычно утопленный, вытравленный или в стиле статического края), как предложил @Barmak Shemirani.
В любом случае, я бы порекомендовал следующее:
- Сначала рассмотрите возможность увеличения элемента управления, если есть место. Обычно все элементы управления в диалоге используют один и тот же шрифт (и это по умолчанию). Наличие некоторых элементов управления с использованием другого шрифта может выглядеть странно (хотя, возможно, и приемлемо).
- Во-вторых (если вы не хотите увеличивать элемент управления), поэкспериментируйте с размером шрифта, прежде чем пытаться программно установить размер шрифта: установите для текста значение FAILED - SELF TEST (самый длинный) и «вручную» установите размер шрифта до максимально возможного (чтобы текст соответствовал) и посмотрите, получите ли вы приемлемый результат.
Если это так, вы можете программно установить размер шрифта. MFC в некоторой степени является «тонкой оболочкой» WinAPI, и все элементы WinAPI доступны как открытые члены классов MFC (например, m_hWnd
является дескриптором окна WinAPI любого класса CWnd
), поэтому вы лучше работать на уровне WinAPI здесь. Вы должны проверить / установить размер шрифта во время инициализации (сообщение WM_INITDIALOG
, сопоставленное с обработчиком OnInitDialog()
). Это шаги:
- Убедитесь, что шрифт (по умолчанию) в порядке: используйте функцию
DrawText()
с установленным флагом DT_CALCRECT
. Это на самом деле не будет рисовать какой-либо текст, вместо этого он вернет необходимый размер (прямоугольник). Добавьте также немного поля (пожалуйста, поэкспериментируйте, но оно должно быть не менее 4 пикселей - две вертикальные линии для кадра и 1 пиксель с каждой стороны). Если это значение меньше или равно размеру элемента управления (в качестве альтернативы вы можете протестировать с шириной текста без дополнительного поля по сравнению с клиентской областью элемента управления, а не с общим размером), это означает, что шрифт по умолчанию в порядке, и никаких других действий не требуется.
- Если нет, получите шрифт элемента управления и создайте новый шрифт с теми же параметрами, за исключением размера, который должен быть уменьшен на 1 (остерегайтесь параметра или элемента
lfHeight
, если он отрицательный, он должен быть вместо этого " выросла"). Проверьте, что с этим шрифтом все в порядке, и если нет, повторите этот шаг, пока текст не уместится.
- Я бы не советовал пытаться увеличить размер шрифта, так как это потребовало бы также проверки по высоте элемента управления, но если вы готовы ...
Надеюсь, это поможет, хотя я не знаю, стоит ли это усилий.