Duilib中的m_rcLinks是怎么初始化的
时间: 2024-02-01 14:12:22 浏览: 138
在Duilib中,m_rcLinks是一个Rect的数组,用于存储每个Link控件的位置信息。m_rcLinks的初始化是在CLabelUI类的DoInit()函数中完成的。在DoInit()函数中,会通过调用CLabelUI类的ParseLink()函数来解析文本内容中的超链接信息,并将每个超链接的位置信息存储在m_rcLinks数组中。
具体的初始化过程如下:
1. 首先,根据文本内容创建一个字体对象,并根据字体属性计算出每个字符的宽度和高度。
2. 然后,遍历文本内容中的每个字符,在遇到超链接的起始标记“<a>”时,记录下当前字符的位置为超链接的起始位置,并继续遍历文本内容,直到遇到超链接的结束标记“</a>”为止,记录下当前字符的位置为超链接的结束位置。
3. 接着,根据超链接的起始位置和结束位置计算出超链接的位置信息,并将其存储在m_rcLinks数组中。
4. 最后,将文本内容中的超链接标记替换成普通文本,以便后续的渲染操作。
这样,m_rcLinks数组就完成了初始化,并保存了每个超链接的位置信息。在后续的渲染操作中,可以使用m_rcLinks数组来判断鼠标是否在超链接的范围内,并响应相应的鼠标事件。
阅读全文