我在彼此之下显示自定义面板列表。当用户将其中一个面板拖出列表时,下面的面板应移动以填补空白。到目前为止没问题。
现在我想为这个动作制作动画。这段代码工作正常,但并不能完全按照我的意愿行事,因为面板仍然有点“跳”到新的位置。 (AnimateWindow只使用pControl
的高度并从零开始滚动它。如果旧位置和新位置之间的距离远大于高度,那看起来很奇怪。)
TWinControl * pControl = some_panel_from_my_list;
pControl->Visible = false;
pControl->Top = new_top;
pControl->Left = new_left;
AnimateWindow( pControl->Handle, 200, AW_SLIDE | AW_VER_NEGATIVE );
pControl->Visible = true;
是否有一些变体只是说:“将此控件从A点滑动到B?”
谷歌出现空或者有太多不相关的点击,我在这里找到的只是iOS或jQuery相关...我希望这里有人可以指出我正确的方向。谢谢!
修改
我没有开始使用AnimateWindow
---我知道不能做我想做的事。我在寻求替代方案。刚刚发现UIAnimationManager
看起来很有前途(并且有点矫枉过正),但我需要进一步调查。实现我自己的基于计时器的动画将是最后的手段,因为严重 - 这样的动画是如此正常现在如果WinAPI没有覆盖它我会感到惊讶!