[quote=引用 13 楼 hanzikai 的回复:] 想问一下如果设置缩进的话,怎么在大小改变的时候动态设置呢?
想问一下如果设置缩进的话,怎么在大小改变的时候动态设置呢?
测试了下,的确不需要把气泡做成ole也行,只要让气泡维护文本的开始位置和结束位置就可以了。 不过我这个气泡现在还有一个bug,tab占用的宽度和它所处的位置有关系,如果一行中有tab制表符可能导致文本宽度计算错误.
曾经也以为是分两层实现的,但再想想这种方法很难做到与文字同步。 要做气泡,有两个难点: 1. 气泡背景怎么画 2. 文字如何布局 画气泡背景,这里要使用一个技巧,QQ里面应该大量采用了这种方式。将Ole的大小设置为(1,1),用于占位,但在绘制的时候先将气泡画上,然后再调用m_spTextServices->TxDraw画上文字。 至于气泡的位置,在插入一段内容时要记录下这段内容的start cp、end cp,用这两个值去获取相应的坐标,计算出内容大小。 文字的布局,也以为是采用右对齐,但错了。后来通过一些方法拿到qq的richedit rtf流,发现采用的就是缩进而已,通过内容大小就也可以计算也相应的左右缩进。
15,979
社区成员
115,896
社区内容
加载中
试试用AI创作助手写篇文章吧