Консоль использует "fixed width fonts"
, например "Courier New"
(доступно во всех версиях Windows) или "Consolas"
(доступно с Vista).
Шрифты фиксированной ширины не обязательно являются растровыми.Чтобы использовать растровые шрифты, перечислите шрифты, чтобы найти растровый шрифт, например "Terminal"
или "Fixedsys"
.Вы должны использовать правильный размер (например, 18 для шрифта "Terminal"
), иначе Windows может заменить другой шрифт и изменить его размер.Есть также проблемы с настройками DPI.Если программа не поддерживает DPI, увеличение будет происходить, если рабочая станция имеет высокие настройки DPI.
case WM_PAINT:
{
PAINTSTRUCT ps;
auto hdc = BeginPaint(hwnd, &ps);
auto hfont = CreateFont(-18, 0, 0, 0, 0, 0, 0, 0,
ANSI_CHARSET,
OUT_DEVICE_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH,
L"Terminal");
auto oldfont = SelectObject(hdc, hfont);
RECT rc = { 0,0,100,300 };
DrawText(hdc, L"Test 123", -1, &rc, DT_LEFT | DT_TOP);
SelectObject(hdc, oldfont);
DeleteObject(hfont);
EndPaint(hwnd, &ps);
return 0;
}