程序流程是这样的:
main()
{
.........
while()
{
//要在这里显示对话框ProgDlg 如:
ProgDlg.DoModal();
//对话框上有一个Progress 要显示while的执行的进度 如:
Progress.StepIt();
//这里的问题就是 ProgDlg.DoModl不是阻塞了吗? 这里该怎么处理?
}}
谢谢了~~~
main()
{
.........
while()
{
//要在这里显示对话框ProgDlg 如:
ProgDlg.DoModal();
//对话框上有一个Progress 要显示while的执行的进度 如:
Progress.StepIt();
//这里的问题就是 ProgDlg.DoModl不是阻塞了吗? 这里该怎么处理?
}}
谢谢了~~~
解决方案 »
- vc++ 串口通信调试问题
- 基于对话框的应用程序没有FrameWnd,怎么使用CControlBar
- 求<<Visual C++ + SQL Server数据库应用实例完全解析-混合编程之案例详解>>之随书光盘
- 关于Timer的一个问题~~~
- 动态创建一个LISTBOX窗口,如何对其进行子类化,使其能够自绘制出彩色文本,请高手指教
- 刚学vc还很菜,请高人指点
- 请教:支持MFC的控制台程序,有一个“CWinApp theApp;”,我删了也没有问题,这个东西有什么用呢?谢谢!
- 如何才能实现往FlexGrid或(DBGrid) 控件中填加数据?谢谢大家。
- 替一个MM提的问题:怎样修改装win98时输入的用户名和公司名!
- 再问!大家帮帮忙吧!谢谢!
- 大侠救我
- 单文档应用程序
这个函数不返回, 你下面的 Progress.StepIt(); 永远得不到执行.
而你的 DoModal( )函数只有在你点了确定或者取消按纽时才会返回.
也就是说在对话框关闭了之后才返回, 这时你当然已经不能执行 Progress.StepIt();
你应该把进度条的处理放在对话框的一个方法里面, 并且在对话框没关闭之前执行.
所以我就添加了一个Dialog 然后在Dialog上添加了一个Progress ....
高手给点好办法吧!
谢谢大家啊 急等ing
Create创建的就是非模态对话框???
ShowWindow显示 哪个是关闭函数??
如果有答案 帖子一定加分!!!!!!!!!!!!!!!!!!!!!!
ShowWindow(SW_SHOW) 显示窗口,
ShowWindow(SW_HIDE) 隐藏窗口。用完后 DELETE 。
Dlg.Create(IDD_ProgDlg , NULL );
Dlg.ShowWindow( SW_SHOW );
//move dlg to center
CRect rect;
Dlg.GetWindowRect ( rect );
int cxScr = GetSystemMetrics(SM_CXSCREEN);
int cyScr = GetSystemMetrics(SM_CYSCREEN);
int x = (cxScr - rect.Width ())/2;
int y = (cyScr - rect.Height ())/2;
Dlg.MoveWindow ( x , y ,rect.Width () , rect.Height () , true); //get the progress handle
//CProgressCtrl *Prog = dynamic_cast<CProgressCtrl *>( Dlg.GetDlgItem( IDC_Prog ) );
CProgressCtrl *Prog= (CProgressCtrl *)Dlg.GetDlgItem ( IDC_Prog );
if(Prog==NULL)
{
AfxMessageBox( "Prog == NULL");
return ;
}
Prog->SetRange ( 0 , (short)StreamFileInfo.nFileSizeLow );
Prog->SetPos (0);
Prog->SetStep (1);
while()
{
...........
Prog->SetIt();
............
}
.....................
// delete Dlg; 加上这句要出错!
上面代码有两个问题:1 Dlg并没有被放到屏幕中间啊 ?
2 就是没有delete Dlg;那么在关闭网页的时候就会弹出“ 中止 调试 忽略”那个对话框 是怎么回事呢???
帮帮忙啊~~~ 分我可以给啊~~~
还是不太明白~~~