使用了CHyperLink,並用SetLinkFont設置了一個比較大的字體進去結果顯示的文字只有左上角的一部分了。
奇怪之餘查看WTL源代碼,發現有這麼一個方法“CalcLabelRect”,在SetLable時會自動調用。而我們沒有主動調用SetLable時會默認幫我們用Static的GetWindowText來設置一次,也就是在這個時候用Static的初始字體計算了一次顯示區域。而我們在SetLinkFont之後如果不主動調用一次CalcLabelRect的話就會產生我上面的問題。
解決方案:
CHyperLink m_linkOOXX;
m_linkOOXX.SetLinkFont(biggerFont);
m_linkOOXX.CalcLableRect();