Please enable JavaScript.
Coggle requires JavaScript to display documents.
前端 (文本打印, 鼠标, 滑块, 鼠标位置与字符的对应(参考传上来的算法)) - Coggle Diagram
前端
文本打印
记录:由一个一维数组储存整个文本(不妨记为Text)
换行情况:MovePen到下一行(x预先设定,y+=h)
1、字符串中遇到 ‘/n’就换行
2、当用户输入“enter“就换行(要将”\n“输入进Text中)
3、当遇到字符串遇到边界时就换行
用户每敲一个字就将字符输入进Text中
输入特殊情况
2、插入,将该位置后的字符后移一格,并插入一个字符
3、中间输入”enter“,中间插入一个” \n“ 即可
1、删除,backspace:将字符从Text中删除
输出:利用DrawTextString输出
初始化一个暂时的String,将Text一段复制到String中并DrawTextStinrg
读取截至情况
换行情况1
换行情况3
有选中情况的,我们能够得到从n1到n2的字符都被选中,添加背景色
鼠标
光标
鼠标点击并抬起时(没有移动),光标移动到相应位置,算法参考:鼠标位置与字符的对应
鼠标点击后拖动的情况
记录鼠标按下的方块(p1,q1),和抬起的方块(p2,q2),记录方块的字符对应在数组中的位置n1,和n2,传给打印文本的函数,这段字体加背景色(标记为选中)
点击到滑块:参考滑块项
滑块
鼠标点击到滑块上(未松开):滑块根据鼠标移动高度移动
松开后即停止
页面移动距离:(滑块移动距离/窗口的高)✖(总行数 ✖每行所占高度)
滑块长度:(一页能够显示的行数/链表中储存的总行数)✖窗口的高度
鼠标位置与字符的对应(参考传上来的算法)
鼠标的坐标为x,y,我们可以通过y计算在第n行,x在第几m列。然后从链表第n个开始找,如果未到m,但遇见了\n,则停在\n在数组的位置。
可以找到鼠标对应的方块,不妨记录为(p,q)