使用了CHyperLink,并用SetLinkFont设置了一个比较大的字体进去结果显示的文字只有左上角的一部分了。
奇怪之余查看WTL源代码,发现有这么一个方法“CalcLabelRect”,在SetLable时会自动调用。而我们没有主动调用SetLable时会默认帮我们用Static的GetWindowText来设置一次,也就是在这个时候用Static的初始字体计算了一次显示区域。而我们在SetLinkFont之后如果不主动调用一次CalcLabelRect的话就会产生我上面的问题。
解决方案:
CHyperLink m_linkOOXX;
m_linkOOXX.SetLinkFont(biggerFont);
m_linkOOXX.CalcLableRect();
本文介绍了一个使用CHyperLink时遇到的问题:设置较大字体后仅部分文字正常显示。通过分析WTL源代码,发现是由于未主动调用CalcLabelRect导致的,并给出了具体的解决方案。
2704

被折叠的 条评论
为什么被折叠?



