请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

Dtttax

银牌会员

280

主题

693

帖子

2233

积分

银牌会员

积分
2233
Dtttax
银牌会员   /  发表于:2019-5-30 22:09  /   查看:3223  /  回复:3
如图:我想这个线条后面的尾部这段截取,这个应该怎么画,目前只前面少一段长度画了。主要代码:

class CrossLineCellType extends GSSSheets.CellTypes.Text {
  constructor() {
    super()
    this.typeName = "CrossLineCellType";
  }
  paint(ctx, value, x, y, w, h, style, options) {

if(value === "\\-"){
     let start=35//这里主要是前面一节的处理,但是后面一节怎么去掉不知道怎么处理。
     x = x +start
      w = w -start

      ctx.save();
      ctx.beginPath();
      ctx.moveTo(x, y + h / 4 - 1);
      ctx.lineTo(x + w, y + h / 4  - 1);
      ctx.lineTo(x + w, y + h / 4 );
      ctx.lineTo(x, y + h / 4 );
      ctx.lineTo(x, y + h / 4 - 1);

      ctx.fillStyle = foreColor;
      ctx.fill();
      ctx.closePath();
      ctx.restore();
      value = null;
    GSSSheets.CellTypes.Text.prototype.paint.apply(this, [ctx, value, x, y, w, h, style, options]);
  }

}
}





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

3 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-5-31 10:56:41
沙发
您好,不是很明白您要实现什么,是需要绘制横穿单元格的线吗?

在paint中使用ctx执行绘制操作就是根据x\y\w\h四个参数来控制绘制图形的大小和位置的,

请参考附件示例。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Dtttax
银牌会员   /  发表于:2019-6-4 22:27:53
板凳
另外的方式实现了
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-6-5 08:41:42
地板
感谢您的反馈,本帖结贴了,有新的问题欢迎发新帖交流~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部