更改字体后更新文本字段(Win32)

时间:2010-04-23 23:35:24

标签: c++ winapi

使用setcontrolfont后,文本字段的文本不会更新。我解决这个问题的唯一方法是删除然后读取所有文本,但这似乎是hackish。我怎么能正确地做到这一点? 感谢

*它是我的一个功能:

void SetControlFont(HWND hand, int size, char* name)
{
    HGDIOBJ hfDefault;
    hfDefault = (HGDIOBJ)CreateFontA(size, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,name);
    SendMessage(hand, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0));
}

1 个答案:

答案 0 :(得分:3)

SendMessage(hand, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0))

MAKELPARAM(FALSE, 0)告诉窗口它不应该重绘自己。您是否尝试过使用MAKELPARAM(TRUE, 0)


如果您不想更改SetControlFont功能,可以在致电SetControlFont致电RedrawWindow后告知文本字段重绘自己。