关于如何绘制文本框占位符的思路

一、背景

在PS、WPS办公软件中总会出现画一个文本框,画一个图片的操作,还能拖动,拉伸,旋转,层叠,请问这是如何实现的呢?


二、本文目的

简单猜测一下文本框的绘制思路。


三、具体思路

(一)鼠标选中文本框功能时发生了什么?

1、此时会把模式设置为文本框绘制模式,会把鼠标和键盘的事件焦点集中到当前工作台。

2、此时所有的鼠标键盘事件都会记录下来,用来提供给文本框绘制的参数(坐标,宽高)


(二)此时鼠标点击工作台某个位置,不松开

程序的变量会记住鼠标第一次点击时的x和y坐标,作为文本框的绘制起始坐标。


(三)鼠标不释放,开始向右下角拖动

1、此时,开始把文本框组件绘制到界面中(只添加一次)。

2、并且监听鼠标拖动事件,不断获取最新的鼠标箭头坐标。

3、把最新的坐标和起始坐标相减,就得到文本框的最新宽高。

4、调用文本框对象的设置宽高方法,把宽高设置为最新的宽高。

5、可能需要更新界面,或者自动更新界面。


(四)鼠标释放后,文本框确定当前的宽高,取消设置

1、此时鼠标移动到文本框的四周,会出现上下左右方向拉伸的箭头,出现移动箭头,还出现旋转箭头。

2、如何实现?可能需要设计文本框的事件范围判断,在对应范围就处理对应鼠标事件,显示对应的鼠标箭头。

3、可能文本框的边框需要画的萎缩一点,留四周的空白区域画那些拉伸图标。


(五)单击文本框的边框,激活文本框的设置

只有当鼠标处在边框的误差范围内,才能单击有效,把设置的各个图标显示出来,把旋转图标绘制出来。


四、主要难点

1、在适当的地方处理适当的事件。

2、要重新设计文本框,重新绘制背景,边框,图标。

3、要实现输入法的光标,也就是点击时的输入光标。

4、当输入后还要把文字绘制到文本框内部。

5、还需要实现文本框的特性,文字多种方向。背景图和背景颜色。

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值