2010-04-23 306 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