harib08a:
  鼠标的显示问题:我们可以看到,鼠标移到窗口最右侧之后就不能再移动了,而WIN中,鼠标是可以移动到最右边隐藏起来的。怎么办?把鼠标指针显示的范围扩宽就行!我们来修改一下HariMain来解决这个问题

//HariMain节选if (mx > binfo->scrnx - 1) {    mx = binfo->scrnx - 1;    }//拓宽到右边界左边的一个像素if (my > binfo->scrny - 1) {    my = binfo->scrny - 1;    }//拓宽到下边界上方的一个像素

harib08b:
  我们发现图层到了画面外,就会出现问题。这里我们一起来吧sheet_refreshsub()函数进行改进,让它不刷新画面以外的内容。
  方   法:在进行画面刷新之前,先判断是否已经超过了画面以外,超过画面外的部分不需要进行刷新操作(下面是关键部分的代码)

//sheet.c中sheet_refreshsub()节选//判断,刷新像素的范围是否超出了画面if (bx0 < 0) { bx0 = 0; }if (by0 < 0) { by0 = 0; }if (bx1 > sht->bxsize) { bx1 = sht->bxsize; }if (by1 > sht->bysize) { by1 = sht->bysize; }

harib08c:
  我们发现在图层移动sheet_undown()中指定ctl太麻烦,于是在这一部分对此做了一些修改,目的就是不在sheet_undown()中指定ctl.
  1、struct SHEET中加入struct SHTCTL *ctl

//在图层的结构体定义struct SHEET中,加入图层控制结构体指针struct SHT