进度对话框(急)(在线等)

sunshinee 2004-04-21 06:29:39
在对话框B中只有一个进度控件,希望点击对话框A中的“OK”buttong后能显示进度对话框A。源码如下:
对A:
if(if(DlgA.DoModal() == IDOK))
{
DlgB Dlg;
Dlg.DoModal();
}

对B:
BOOL DlgB::OnInitDialog()
{
CDialog::OnInitDialog();

// TODO: Add extra initialization here

//add for test
MessageBox("test","test",NULL);

m_progress.ShowWindow(SW_SHOW);
m_progress.SetRange(1,100);
for(int i=0;i<100;i++)
{
m_progress.SetPos(i);
Sleep(100);
}

return TRUE;
}

结果是点击A中的“ok”,不能显示进度对话框B,但B中用于测试的“test”提示框能弹出。不知道上述代码问题出在哪里?
...全文
37 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜牛 2004-04-22
  • 打赏
  • 举报
回复
在对话框中不支持定时器啊?谁说的?就用这个办法挺好,不过只能演示,不是真的进度。
loafernpu 2004-04-21
  • 打赏
  • 举报
回复
http://www.vckbase.com/code/listcode.asp?mclsid=3&sclsid=325
暗黑帝国 2004-04-21
  • 打赏
  • 举报
回复
用无模式对话框加进度条,然后向它发消息来处理进度条 就可以了,很简单的
sunshinee 2004-04-21
  • 打赏
  • 举报
回复
高手救救我吧!
sunshinee 2004-04-21
  • 打赏
  • 举报
回复
我现在就是不想在进度对话框中添加按钮啊!
如果不打算添加按钮,还有什么其他办法可以使在初始化时进度条没有满?
暗黑帝国 2004-04-21
  • 打赏
  • 举报
回复
那是因为在初始化的时候,进度条已经满了,你可以加个按钮,在那个按钮的处理函数里加那个循环就可以演示了,比如:
void DlgB::OnButton1()
{
// TODO: Add your control notification handler code here
for(int i=0;i<100000;i++)
{
m_progress.SetPos(i/1000);
//Sleep(10);
}
}
sunshinee 2004-04-21
  • 打赏
  • 举报
回复
当我去掉Sleep(100)后,对话框倒是显示,不过显示的是一个静态的对话框啊!进度控件不能显示进度,不知道又是什么地方出了问题。
还有就是,当我另外一个事件触发后我需要强制关闭这个进度对话框,那又该怎么处理呢?
sunshinee 2004-04-21
  • 打赏
  • 举报
回复
再请问一下楼上的,
在对话框中不支持定时器啊?你怎么能处理OnTimer事件啊?
真糨糊 2004-04-21
  • 打赏
  • 举报
回复
BOOL DlgB::OnInitDialog()
{
CDialog::OnInitDialog();

// TODO: Add extra initialization here

//add for test
MessageBox("test","test",NULL);

m_progress.ShowWindow(SW_SHOW);
m_progress.SetRange(1,100);
SetTimer(1,100,NULL);
return TRUE;
}


void DlgB::OnTimer(UINT nIDEvent)
{
static int iPos = 0;
if(1 == nIDEvent)
{
m_progress.SetPos(++iPos);
if(100 == iPos)
KillTimer(1);
}
}
真糨糊 2004-04-21
  • 打赏
  • 举报
回复
for(int i=0;i<100;i++)
{
m_progress.SetPos(i);
Sleep(100);
}
不应放在OnInitDialog()中,最好用OnTimer
FIFO2003 2004-04-21
  • 打赏
  • 举报
回复
开个线程吧
暗黑帝国 2004-04-21
  • 打赏
  • 举报
回复
显示肯定能显示的不过至少要等10秒钟以后
暗黑帝国 2004-04-21
  • 打赏
  • 举报
回复
你的Sleep(100)有问题啊

15,979

社区成员

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

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