Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2342141
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:02:19

我的目的,就是拖动我自己定义的一些控件放到ScrollBox上作图,这些控件继承自TGraphicControl,在他们自己的paint事件中画直线,方框之类的形状。如果我想用高精度的坐标,应该可以在这些控件里面设置。
但是,现在我并没有转换坐标,现在我的问题是,我的两个控件本来是链接对齐的,一用scrollbox的scaleby把这两个对齐的控件放大之后,如果其中一个落入非可视区(比如下图的方框,放大后落入非可视区)他们就对不齐了,因为方框的对齐点坐标(left,Top+Height/2)并不跟着方框的Left,Top,Height,Width属性变化,对齐点的坐标是在Paint事件里定义的。

 对齐的    scaleby放大之后   对不齐了
-----■       ->            -----  ■

我想问题可能是那个方框控件落入ClipRect之外,应为windows只是自动重画ClipRect之内的对象,所以方框没有被重画,所以paint事件没有触发,自然paint事件中对对齐点坐标的赋值没有执行。但是我就算在放大之后,立即调用方框的update(),也不能使对齐点得到刷新....不知道victor怎么认为?而且这要怎么解决呢?

--------------------next---------------------

阅读(1510) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~