Простой способ установить тип шрифта в MFC CListBox
Я всегда использовал элемент управления ListBox по умолчанию со свойством OWNER DRAW, установленным в NO. Но теперь мне нужно установить монофонический шрифт фиксированного размера, поскольку мои отформатированные строки не выравниваются, даже если у меня по умолчанию установлен выравнивание по правому краю и необходим ширины, превышающий фактический размер строки цифр. Моя проблема в том, что я не имею ни малейшего понятия, как написать простой код для этого, и я никогда не кодировал, чтобы для OWNER DRAW было установлено что-либо кроме NO. Цените любой вклад или примеры или ссылки. Кроме того, хотелось бы получить информацию о том, как проверить, какие шрифты с фиксированной моношириной доступны в системе, в которой запущено мое приложение? (C++ MFC, Visual Studio)
2 ответа
Объявить CFont
возьмите объект и инициируйте его с помощью CFont:: CreateFont.
"Courier New" обычно является хорошим выбором для шрифтов фиксированной ширины.
использование CListBox
Метод SetFont() (наследуется от CWnd
) заменить стандартную.
Не знаю о CListBox, но в стандартном списке Windows вы можете использовать сообщение WM_SETFONT, чтобы установить шрифт элемента управления. CListBox, вероятно, оборачивает собственный список, поэтому, если вы можете получить HWND для CListBox, установить его шрифт с помощью WM_SETFONT должно быть легко.