T
Tomas.Samuel
Unregistered / Unconfirmed
GUEST, unregistred user!
各位Delphi高手:
我在显示图形时,用的是TImage控件,好用倒好用,但有一个严重的缺陷:在改变显
示区大小时,闪烁十分厉害,(即使是在关闭了Strech和Autosize后,且变大区域完全不
需刷新TImage范围时,TImage仍被刷新闪烁)。我希望作到想Win95中,既在改变大小的
拖动过程中,只画虚框,且完全阻止TImage刷新,在完成拖动,释放鼠标后,重新计算修
改TImage,然后刷新。但鉴于本人对Delphi的整个Window的消息机制并未完全掌握,在实
现的过程中有如下问题:
1。要想画虚框,必要捕获相应的消息,(即WM_SIZE)在Delphi中有OnResize与
OnCanResize两个可选,但都不知道鼠标的拖动何时结束,对于调整大小的鼠标拖动的的
结束,Delphi有现成的事件吗?如没有是否要捕获WM_SIZE, 还是别的消息(windows有上
千个消息呀)?如果是要捕获WM_SIZE,如何使之不与OnResize冲突?
2。我认为TImage之所以做许多“无意义”的闪烁,是由于Delphi总是调用父对象的
OnPaint(WM_PAINT)后,“毫无选择”的调用子对象的OnPaint。(如果TImage的位置大
小完全无改变,刷新岂不毫无意义),我想加入我自己的选择,但不知加在哪儿?TImage
好象没有OnPaint事件。:-(
3。有时听说有双缓冲的说法,是否对本问题有益?
望各位指点迷津,小生在此谢谢先!
Tomas
我在显示图形时,用的是TImage控件,好用倒好用,但有一个严重的缺陷:在改变显
示区大小时,闪烁十分厉害,(即使是在关闭了Strech和Autosize后,且变大区域完全不
需刷新TImage范围时,TImage仍被刷新闪烁)。我希望作到想Win95中,既在改变大小的
拖动过程中,只画虚框,且完全阻止TImage刷新,在完成拖动,释放鼠标后,重新计算修
改TImage,然后刷新。但鉴于本人对Delphi的整个Window的消息机制并未完全掌握,在实
现的过程中有如下问题:
1。要想画虚框,必要捕获相应的消息,(即WM_SIZE)在Delphi中有OnResize与
OnCanResize两个可选,但都不知道鼠标的拖动何时结束,对于调整大小的鼠标拖动的的
结束,Delphi有现成的事件吗?如没有是否要捕获WM_SIZE, 还是别的消息(windows有上
千个消息呀)?如果是要捕获WM_SIZE,如何使之不与OnResize冲突?
2。我认为TImage之所以做许多“无意义”的闪烁,是由于Delphi总是调用父对象的
OnPaint(WM_PAINT)后,“毫无选择”的调用子对象的OnPaint。(如果TImage的位置大
小完全无改变,刷新岂不毫无意义),我想加入我自己的选择,但不知加在哪儿?TImage
好象没有OnPaint事件。:-(
3。有时听说有双缓冲的说法,是否对本问题有益?
望各位指点迷津,小生在此谢谢先!
Tomas