| 发表于:2007-03-13 14:06:2511楼 得分:60 |
绘图时没有必要改变可见区域的坐标,在同一区域显示动态改变的新内容就可以了. 例:设置滚动条的range为(0, 总行数), 当下拉滚动条时, 先获取滚动条的位置m_npos;然后调用drawtable刷新显示区域. void drawtable(hdc hdc, rect rcclient) { patblt(hdc, rcclient.left, rcclient.top, rcclient.right-rcclient.left, rcclient.bottom-rcclient.top, whiteness); ... for(i=0;i <nvisiblelines; i++) // { rowdata *pdata=getrowdata(m_npos); //定位到需显示的数据 drawline(hdc, rcclient.left, rcclient.top+i*cyline, pdata); } } | | |
|