如何得知 win7 创建程序时的窗口动画进行完成

dragonyjd 2012-08-31 07:21:23
如题,在win7 AERO下,我的程序打开时,系统会有一个渐放大的窗口动画。我现在要在窗口动画完了之后立即要做一些事情,因此,如何得到win7完成的动画后的时机?

找了半天也找不到。感谢各位大虾
...全文
180 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
dragonyjd 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

WaitForInputIdle(INFINTE);
[/Quote]

已经试过了,还是不行,另外还有个问题就是这个函数会阻塞UI线程,不是太好。不过谢谢了
schlafenhamster 2012-09-03
  • 打赏
  • 举报
回复
WaitForInputIdle(INFINTE);
qlizhang 2012-09-01
  • 打赏
  • 举报
回复
估一下,加个Sleep(n);
dragonyjd 2012-09-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 2 楼 的回复:
上次见过这帖,楼主可以把程序放在其启动里,然后设置开机启动程序的先后。

或者修改注册表


原来是开机启动的动画...

修改注册表吧,这个方便
位置:Assembly code
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
[/Quote]

谢谢,真不是开机自启动
dragonyjd 2012-09-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

上次见过这帖,楼主可以把程序放在其启动里,然后设置开机启动程序的先后。

或者修改注册表
[/Quote]

跟开机先后没关系阿,我是程序窗口创建时的 WIN7 AERO下带的动画
dragonyjd 2012-09-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

窗口动画...动画完成了直接调用你的代码不可以么?

或者在你的代码中直接设置个timer,大约动画完成,调用一下就可以
[/Quote]

不是窗口动画,是win7 aero效果给我加的,窗口创建和窗口最大化,最小化时,WIN7 AERO自带的。

另外,我现在也是加的一个TIMRE,但这个TIMER不是通用的,正确情况下OK,但如果硬盘很忙很忙的时候,TIMER还是不太准的。
dragonyjd 2012-09-01
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

引用 5 楼 的回复:
引用 1 楼 的回复:

窗口动画...动画完成了直接调用你的代码不可以么?

或者在你的代码中直接设置个timer,大约动画完成,调用一下就可以


不是窗口动画,是win7 aero效果给我加的,窗口创建和窗口最大化,最小化时,WIN7 AERO自带的。

另外,我现在也是加的一个TIMRE,但这个TIMER不是通用的,正确情况下OK,但如果硬盘……
[/Quote]

总感觉在ONPAINT中加不相关的逻辑,不太靠谱,而且动画是AERO提供的。快慢跟机器性能有关
dickbarry 2012-09-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
引用 1 楼 的回复:

窗口动画...动画完成了直接调用你的代码不可以么?

或者在你的代码中直接设置个timer,大约动画完成,调用一下就可以


不是窗口动画,是win7 aero效果给我加的,窗口创建和窗口最大化,最小化时,WIN7 AERO自带的。

另外,我现在也是加的一个TIMRE,但这个TIMER不是通用的,正确情况下OK,但如果硬盘很忙很忙的时候,TIMER还是……
[/Quote]

我还以为我搞错了...看来跟我想的差不多...
UpdateWindow会发送WM_PAINT消息,之后窗口会显示出来,LZ可以从这里出发,让首次paint完之后,再延时一会儿,可能更准确点
wyx100 2012-08-31
  • 打赏
  • 举报
回复
回复于:2012-08-31 19:26:49窗口动画...动画完成了直接调用你的代码不可以么?

或者在你的代码中直接设置个timer,大约动画完成,调用一下就可以

dickbarry 2012-08-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
上次见过这帖,楼主可以把程序放在其启动里,然后设置开机启动程序的先后。

或者修改注册表
[/Quote]

原来是开机启动的动画...

修改注册表吧,这个方便
位置:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 
傻X 2012-08-31
  • 打赏
  • 举报
回复
上次见过这帖,楼主可以把程序放在其启动里,然后设置开机启动程序的先后。

或者修改注册表
dickbarry 2012-08-31
  • 打赏
  • 举报
回复
窗口动画...动画完成了直接调用你的代码不可以么?

或者在你的代码中直接设置个timer,大约动画完成,调用一下就可以

15,979

社区成员

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

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