2010-04-23 139 views
0

使用setcontrolfont后,文本字段的文本不会更新。我解决这个问题的唯一方法是删除然后读取所有文本,但这看起来很诡异。我如何正确地做到这一点? 感谢字体更改后更新文本字段(Win32)

*它的功能我提出:

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

我不认为''SetControlFont'是一个Win32函数。你在使用特定的框架吗? – MSN 2010-04-23 23:58:20

回答

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

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


如果你不想改变SetControlFont功能,你可以告诉文本字段通过调用RedrawWindow调用SetControlFont后重绘自身。

+0

谢谢你做到了! – jmasterx 2010-04-24 00:11:43