2

我有一个二维字符数组lineData和一个bools,数组linesToUnderlinelineData只存储文本。linesToUnderline为 中的每一行存储一个真或假lineData。中的每一行都以lineData某种方式放入静态控件(动态创建)中以显示给用户。

现在如果linesToUnderline[i]= true (对于 0 <= i < numLines),我需要显示只有第一个单词下划线的行,其余文本正常显示。

我所说的看起来像:

第一个单词有下划线

所以目前,我正在考虑做的事情:

  1. 如果linesToUnderline[i]= false,请转到步骤 4。
  2. 从 中获取第一个单词lineData,将其放入静态控件中,将该控件的字体设置为带下划线。
  3. 从 中删除第一个单词lineData
  4. 将起始 X 位置增加lineData' 的像素长度。
  5. 从位置 X、Y 开始放置lineData一个静态控件。
  6. 如果i<numLines转到步骤 1。
  7. 停止。

你觉得我的方法怎么样?我觉得必须有更好的方法来做到这一点。如果有,有人可以帮我吗?

4

2 回答 2

0

代码项目文章通过子类化静态控件来实现超链接控件。您可以将其用作进行自定义下划线的基础。您所要做的就是简化代码。

于 2013-06-26T11:29:56.707 回答
0

您提出的方法将不起作用。该控件一次仅使用一种字体(用于其所有文本),并且它不提供在 X、Y 处附加文本的方法。

您必须子类化控件并自己在 WM_PAINT 中绘制文本。您的绘制代码可以提供必要的功能。

于 2013-06-25T15:34:33.497 回答