📄 subject_28145.htm
字号:
<p>
序号:28145 发表者:qiaofeng 发表日期:2003-01-18 12:00:09
<br>主题:进度条不会动
<br>内容:我的进度条放在对话框CDlgShow上,进度条为m_progress,我是这样用的:<BR>int m_nProgress=0;<BR>CDlgShow show;<BR>show.DoModal();<BR>show.m_progress.SetRange(0,100);<BR>for(i=0;i<100;i++)<BR>{<BR> m_nProgress++;<BR> UpdateData(TRUE);//刷新<BR> show.m_progress.SetPos(m_nProgress);<BR>}<BR>怎么进度条没有反应呢?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:菜鸟也支招儿 回复日期:2003-01-18 12:10:21
<br>内容:当然了,你要把m_nProgress和控件想关联起来,不然程序怎么知道这个变量是干什么的!在MFC ClassWizard 里MemberVariables里把你加的进度条控件捆绑一个变量(如你的m_nProgress).
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:qiaofeng 回复日期:2003-01-18 12:15:37
<br>内容:m_progress就是进度条的捆绑变量呀
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:晚风也渡 回复日期:2003-01-18 12:21:10
<br>内容:一般在OnInitDialog()中初始化滚动范围<BR>CScrollBar* pSB=(CScrollBar*)GetDlgItem(IDC_ControlID);<BR>pSB->SetScrollRange(0,100);<BR>pSB->SetPos(0);<BR>//该下面的程序段为<BR>for(i=0;i<100;i++)<BR>{<BR> m_nProgress++;<BR> UpdateData(TRUE);//刷新<BR> (CScrollBar*)GetDlgItem(IDC_ControlID)->SetPos(m_nProgress);<BR>}<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:upstream 回复日期:2003-01-18 12:22:05
<br>内容:你忘了用SetTimer了<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:菜鸟也支招儿 回复日期:2003-01-18 12:31:46
<br>内容:在基于对话框中,j是个成员变量,在OnInitDialog()中初始化为j=0;不用刷新,用他干嘛?<BR>void CHaha1Dlg::OnOK() <BR>{<BR> // TODO: Add extra validation here<BR> for(int i=0;i<100;i++)<BR> {<BR> for(int i=0;i<100;i++)<BR> {<BR> m_nProgress.SetRange(0,100);<BR> m_nProgress.SetStep(1);<BR> m_nProgress.SetPos(j);<BR> j++;<BR> }<BR> j=0;<BR> } <BR>// CDialog::OnOK();<BR>}<BR>最好弄一个timer来控制,不然循环太快了,看不清楚!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:菜鸟也支招儿 回复日期:2003-01-18 12:37:53
<br>内容:用个timer来搞定!记得这个j也要初始化!<BR>void CHaha1Dlg::OnOK() <BR>{<BR> // TODO: Add extra validation here<BR> m_nProgress.SetRange(0,1000);<BR> ::SetTimer(m_hWnd,1,10,NULL);<BR>// CDialog::OnOK();<BR>}<BR><BR>void CHaha1Dlg::OnTimer(UINT nIDEvent) <BR>{<BR> // TODO: Add your message handler code here and/or call default<BR> m_nProgress.SetPos((j++)*10);<BR> if(j==100)<BR> j=0;<BR> CDialog::OnTimer(nIDEvent);<BR>}<BR>2003-1-18 12:39:11
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -