怎样实现窗口的滑动效果,类似iphone

小张785412 2013-04-08 04:57:16
功能就是两个窗口之间切换时能平滑移动。类似ihpone那样。

方法一:使用AnimateWindow,自带窗口可以,自绘的窗口有问题,移动时只有黑块。参考了网上的这篇文章无效http://chaochaoblog.com/archives/110
方法二:使用MoveWindow,效果太低,CPU爆涨也就算了,关键是太卡了,没有平滑效果。

谁有解决方案?
...全文
319 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
i橡皮擦 2014-11-18
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/dh164645822/6848431 是这个效果吗?我有源码
向立天 2013-06-09
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
dahaiI0 2013-04-12
  • 打赏
  • 举报
回复
记得论坛推荐里有个360特性的小demo,窗口切换的比较平滑也不卡,可以找下
zh359780498 2013-04-12
  • 打赏
  • 举报
回复
卡的原因应该是你同时滑动的窗口过多引起的,我这里有两个方法: 1.用下列API函数批量移动窗口: BeginDeferWindowPos DeferWindowPos EndDeferWindowPos 2.模拟移动: 建立一个单独的窗口A专门显示移动效果,A窗口的长度是所有要移动窗口长度的和,然后获取所有要移动窗口的图像整齐排列贴在A窗口中,默认A窗口是隐藏的,当要移动窗口时,先隐藏当前显示的窗口B,然后显示A窗口,只需要平滑移动A窗口到需要的位置,然后把移动结束时要显示的那个窗口C一次移动到当前位置,然后隐藏A窗口。
向立天 2013-04-11
  • 打赏
  • 举报
回复
MoveWindow很卡么 不会吧
allenhiman 2013-04-11
  • 打赏
  • 举报
回复
当做图形来动 对窗口抓图
小张785412 2013-04-11
  • 打赏
  • 举报
回复
引用 5 楼 CometNet 的回复:
既然是自绘窗口那就简单了. 先一次性在内存里绘制出整个窗口的效果 然后启动一条线程或者在时钟里BitBlt到显示的地方,很平滑.
方法可行,但是就会造成另一个问题,两个窗口要整合成一个窗口来自绘
小张785412 2013-04-11
  • 打赏
  • 举报
回复
引用 6 楼 xianglitian 的回复:
MoveWindow很卡么 不会吧
是的,移动一两个位置看不出,如果移动持续一段时间就很明显了,做不到平滑。
邓学彬 2013-04-10
  • 打赏
  • 举报
回复
既然是自绘窗口那就简单了. 先一次性在内存里绘制出整个窗口的效果 然后启动一条线程或者在时钟里BitBlt到显示的地方,很平滑.
小张785412 2013-04-10
  • 打赏
  • 举报
回复
引用 3 楼 zhoujielunzhimi 的回复:
平滑滑动。 这个肯定是要用到定时器的。 手指拖动时,这个不用定时器。手指放开时,无论是iphone还是其他都要用定时器。
已经试用过用定时器+MoveWindow,问题是太卡了,无论时间间隔设为多少都会卡,CPU爆涨。我想知道有没什么方法可以取代MoveWindow,而效率高一些不会卡?
sumos 2013-04-10
  • 打赏
  • 举报
回复
平滑滑动。 这个肯定是要用到定时器的。 手指拖动时,这个不用定时器。手指放开时,无论是iphone还是其他都要用定时器。
小张785412 2013-04-10
  • 打赏
  • 举报
回复
继续顶...
杀意已决 2013-04-08
  • 打赏
  • 举报
回复
我是菜比,如果没记错,当时用Xcode做这个效果的时候是每次你移动当前窗口的时候把下一个窗口读到内存,就可以避免黑屏和闪屏

15,980

社区成员

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

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