• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

求助:关于Sleep函数的使用,仅10分了,HELP……

pjf2000 2004-12-03 10:13:35
一些Winform软件,开始都是一个漂亮的页面,停留几秒之后,进入主界面。

现在我也想实现该功能。我的想法是:
在弹出主界面前,先弹出一个Dialog(为它设置背景图片)。在该Dialog的OnInitDialog()里面添加如下代码:
::Sleep(1000);
OnCancel;

我发现时间是延迟了,不过不出现对话框。延迟过后,主界面就出现了。

为什么该Dialog不出现啊?请高手指点……

学习、关注……

声明一下:
1.如果我不加上面的代码,Dialog就可以出现主界面前
2.我建立的是MFC单文档项目
...全文
164 点赞 收藏 18
写回复
18 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
easydw 2004-12-07
用多线程试试吧~我是从来不在主线程中用Sleep函数的,会引起主线程无响应,也就是常说的堵塞,但是在子线程中使用确是很好用,相信能满足你的要求
回复
loki2k 2004-12-06
用Splash组件,也可以用timer去控制,你这样当然不行,你的对话框都没有初始话完,怎么会显示呢?
回复
pjfwho 2004-12-06
TO:phineco(一切从头再来)
"用组件Splash Screen"

怎么用啊,没试过

请详细说一下!
回复
najzni 2004-12-06
Sleep就是放弃了当前线程的
CPU时间,CPU转而去调度执行其他的线程,所以你的对话框显示不出来。
回复
phineco 2004-12-06
用组件Splash Screen
回复
linguanyu315 2004-12-06
learning...
回复
pjf2000 2004-12-06
ok
回复
swordman_guo 2004-12-05
我以前做过的,试试看行不行。
CSplashWnd::ShowSplashScreen(this);
Sleep(1000);
回复
jussoo 2004-12-04
studyin!
回复
pjf2000 2004-12-04
谢谢!
我试试!
回复
Mi_Bo 2004-12-04
学习ing
回复
afc 2004-12-04
OnInitDialog中初始化一个Timer,在Timer的处理函数里销毁对话框
回复
superhandsome 2004-12-04
splash screen,可以达到你的效果
回复
960379 2004-12-04
你应该在主界面的初始化函数或者程序的初始化函数中动态生成带有背景画面的对话框。生成后sleep,然后销毁对话框。然后再继续程序运行。
回复
HunterForPig 2004-12-03
OnInitDialog是正在初始化界面,
sleep是就阻塞了界面线程!
回复
EnochShen 2004-12-03
OnInitDialog的时候Dialog还没有被创建出来,建议在别的地方加这个SLEEP
回复
nwcow 2004-12-03
因为window是消息循环,Sleep后消息循环也被停止了,所以无法显示dialog。
你可以增加一个定时器,在规定的时间显示,然后关闭。
回复
Kudeet 2004-12-03
http://www.vckbase.com/document/viewdoc/?id=710
http://www.vckbase.com/document/viewdoc/?id=811
回复
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-12-03 10:13
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……