在Win32中更改文本的字体

时间:2017-09-12 21:09:49

标签: c++ winapi fonts

我一直在尝试使用Win32 API更改窗口中的输出字体。这是我做的,但它不起作用。我该怎么办?

hdc = BeginPaint(hWnd, &ps);
hFont = CreateFont(y_position, closest_match, escapement, orientation, FW_DONTCARE,
    no_italic, no_ul, no_xout, ANSI_CHARSET,
    OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, DRAFT_QUALITY, VARIABLE_PITCH,
    TEXT("Tekton Pro")/*"SYSTEM_FIXED_FONT"*/);
SetTextColor(hdc, RGB(255, 0, 0));
TextOut(hdc, 50, y_position, TEXT("test"), strlen("test"));
// TODO: Add any drawing code that uses hdc here...
EndPaint(hWnd, &ps);
DeleteObject(hFont);

1 个答案:

答案 0 :(得分:5)

创建字体对象tc(8)后,您必须致电hFont将其分配给SelectObject()。使用完字体后,再次调用hdc恢复旧字体(因此不会泄露),然后再销毁字体:

SelectObject()