急,急,急!!!!!!!!!!一个画图问题。在线等待!

yushulei 2003-09-29 11:47:12
现在正在做一个报表控件,遇到了一个难题,就是有两个格子(长方形的),是并
派在一起的,里面有数据,也有底色等信息,现在我想拖动滚动条,让第二歌格子向左移动,第一个格子不动,但这样第二个格子会覆盖第一个格子,我怎么设置画图格式才能构让第二个格子不覆盖第一个格子的任何信息。就是第一个格子总在最上面。谢谢。
...全文
34 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
mfc168 2003-10-09
  • 打赏
  • 举报
回复
制作VC表格控件

http://sanjianxia.myrice.com/vc/vc9.htm
yushulei 2003-10-09
  • 打赏
  • 举报
回复
请问虚表技术是什么概念啊?
hardstudylulin 2003-10-09
  • 打赏
  • 举报
回复
学习!
yushulei 2003-09-30
  • 打赏
  • 举报
回复
to yinzhaohui(努力)
你的1、2两条正是我现在用的方法。但第三条不行,因为如果只是固定列不画的话,
其他列会覆盖他,这就是我为什么要找那个颜色操作的缘由。

我说的十万条是总共的数据,因为既然你设计控件就 应该考虑到数据量大的情况。
当数据量大的时候,你找到这些固定的列也很花时间的。
s6283 2003-09-30
  • 打赏
  • 举报
回复
首先需要计算那些行,列在屏幕中显示并计算其在屏幕显示的位置,
固定行列与可移动行列分别计算,然后对GetClipBox得到的区域进行重画,
如果数据量很大需要用虚表技术,codeproject有个gridctrl的例子可以参考

yushulei 2003-09-30
  • 打赏
  • 举报
回复
up
icr_mio 2003-09-29
  • 打赏
  • 举报
回复
你每次都画两个格子,后画第一个格子行吗。
或者第二个格子不移动,而是缩小
yinzhaohui 2003-09-29
  • 打赏
  • 举报
回复
1.对你的每一行列都有一个属性,这个属性就是是否固定
2.你每一次只绘制屏上能看见的(通过当前客户区大小和格子属性计算).绘制0行0列到你计算到的格子的地方.
3.当你使用滚动务滚动时,计算除固定行列的启始位重绘就可以了
icr_mio 2003-09-29
  • 打赏
  • 举报
回复
楼上有道理,只画一个屏幕的格子不就好了?
lcdest 2003-09-29
  • 打赏
  • 举报
回复
十万条????

有必须一次显示那么多吗???

yushulei 2003-09-29
  • 打赏
  • 举报
回复
格子是我画的,我也想过把这些放最后画,但如果数据量太大的时候,这样做就会影响速度,
比如有十万条记录,就很麻烦了,所以一直想用那种色彩覆盖的方法,以前曾经看到过,但忘
了,真郁闷啊!
icr_mio 2003-09-29
  • 打赏
  • 举报
回复
可是你第二个格子移动了,其他格子不是也要动吗
Onega 2003-09-29
  • 打赏
  • 举报
回复
use SetWindowPos to change Z-order of first column
Microsoftadherent 2003-09-29
  • 打赏
  • 举报
回复
格子的绘制你写的吗?如果是就简单了,只要把你认为Order属性高的,后绘制它就可以了。
yushulei 2003-09-29
  • 打赏
  • 举报
回复
我是举个例子说的,我每次要画几千到几万个格子,所以你说的第一个方法不行。
至于第二个办法也不好,因为后面还有第三第四等等好多。所以只能用那种图形的
拼接,我记得以前在哪看到过,在两个图形重合的地方可以设置异或什么的就能够实现我想
要的效果,但实在记不清楚了。请各路大侠指教啊!
blue_laser 2003-09-29
  • 打赏
  • 举报
回复
后画在上面的鸽子!!

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧