使用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));
}
答案 0 :(得分:3)
SendMessage(hand, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0))
MAKELPARAM(FALSE, 0)
告诉窗口它不应该重绘自己。您是否尝试过使用MAKELPARAM(TRUE, 0)
?
如果您不想更改SetControlFont
功能,可以在致电SetControlFont
致电RedrawWindow
后告知文本字段重绘自己。