C ++如何动画(“幻灯片”)控件从A点到B点?

时间:2016-06-30 12:54:45

标签: c++ winapi

我在彼此之下显示自定义面板列表。当用户将其中一个面板拖出列表时,下面的面板应移动以填补空白。到目前为止没问题。

现在我想为这个动作制作动画。这段代码工作正常,但并不能完全按照我的意愿行事,因为面板仍然有点“跳”到新的位置。 (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没有覆盖它我会感到惊讶!

0 个答案:

没有答案