harib08a:
鼠標的顯示問題:我們可以看到,鼠標移到窗口最右側之后就不能再移動了,而WIN中,鼠標是可以移動到最右邊隱藏起來的。怎么辦?把鼠標指針顯示的范圍擴寬就行!我們來修改一下HariMain來解決這個問題
//HariMain節(jié)選if (mx > binfo->scrnx - 1) { mx = binfo->scrnx - 1; }//拓寬到右邊界左邊的一個像素if (my > binfo->scrny - 1) { my = binfo->scrny - 1; }//拓寬到下邊界上方的一個像素
harib08b:
我們發(fā)現(xiàn)圖層到了畫面外,就會出現(xiàn)問題。這里我們一起來吧sheet_refreshsub()函數(shù)進行改進,讓它不刷新畫面以外的內(nèi)容。
方 法:在進行畫面刷新之前,先判斷是否已經(jīng)超過了畫面以外,超過畫面外的部分不需要進行刷新操作(下面是關鍵部分的代碼)
//sheet.c中sheet_refreshsub()節(jié)選//判斷,刷新像素的范圍是否超出了畫面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:
我們發(fā)現(xiàn)在圖層移動sheet_undown()中指定ctl太麻煩,于是在這一部分對此做了一些修改,目的就是不在sheet_undown()中指定ctl.
1、struct SHEET中加入struct SHTCTL *ctl
//在圖層的結構體定義struct SHEET中,加入圖層控制結構體指針struct SHT