我有一个二维字符数组lineData
和一个bool
s,linesToUnderline
数组。 lineData
只存储文字。 linesToUnderline
为lineData
中的每一行存储true或false。 lineData
中的每一行都以某种方式放入静态控件(动态创建)中以显示给用户。
现在,如果linesToUnderline[i]
= true(对于0< = i< numLines
),我需要显示只有带下划线的第一个单词的行,其余的通常的文本。
我所说的是:
目前,我正在考虑做的事情:
linesToUnderline[i]
= false,请转到步骤4. lineData
获取第一个单词,将其置于静态控件中,将该控件的字体设置为下划线。lineData
删除第一个单词。lineData
的像素长度增加X位置。lineData
放在从位置X,Y开始的静态控件中。i
< numLines
转到第1步。您如何看待我的方法?我觉得必须有更好的方法来做到这一点。如果有,有人可以帮助我吗?
答案 0 :(得分:0)
您提出的方法不起作用。该控件一次只使用一种字体(对于其所有文本),并且它不提供在X,Y处附加文本的方法。
您必须对控件进行子类化并在WM_PAINT中自己绘制文本。您的油漆代码可以提供必要的功能。
答案 1 :(得分:0)
这个code project article通过继承静态控件来实现超链接控件。您可以将其用作进行自定义下划线的基础。您所要做的就是简化代码。