我有一个2D字符数组lineData
和一个bool
数组linesToUnderline
。 lineData
仅存储文本。 linesToUnderline
为lineData
中的每一行存储true或false。 lineData
中的每一行都以某种方式置于静态控件(动态创建)中,以显示给用户。
现在,如果linesToUnderline[i]
= true(对于0 numLines),则需要显示仅在下划线的第一个单词的行,而其余文本则正常显示。
我在说什么看起来像:
所以目前,我在想什么:linesToUnderline[i]
= false,请转到步骤4。lineData
获取第一个单词,将其放在静态控件中,将该控件的字体设置为带下划线的字体。 lineData
中删除第一个单词。 lineData
的像素长度开始的X位置递增。 lineData
放在静态控件中,从位置X,Y开始。i
<numLines
转到步骤1。
您如何看待我的方法?我认为必须有更好的方法来做到这一点。如果有,有人可以帮我吗?
最佳答案
您建议的方法将不起作用。控件一次仅使用一种字体(用于其所有文本),并且没有提供在X,Y处附加文本的方法。
您必须将控件子类化,并在WM_PAINT中自己绘制文本。您的绘画代码可以提供必要的功能。