现在有一个MFC工程(非对话框),我添加了一个对话框资源,该对话框资源有一个CProgressCtrl进度条,我使用CProgressCtrl m_pro作为该对话框类的成员变量,然而再把该对话框类作为view的成员变量,想在view里面访问进度条,设置进度条的范围等,但程序运行到这里马上出错,不知道为何,請大家指教?
具体关系如下:
UpdatePro.h //对话框资源生成类
CProgressCtrl m_pro;//作为对话框的成员变量dapView.h //view类
UpdatePro m_proDlg;对话框作为view的成员变量dapView.cpp
m_proDlg.m_pro.SetRange();//出错!
具体关系如下:
UpdatePro.h //对话框资源生成类
CProgressCtrl m_pro;//作为对话框的成员变量dapView.h //view类
UpdatePro m_proDlg;对话框作为view的成员变量dapView.cpp
m_proDlg.m_pro.SetRange();//出错!
1、对话框最好用非模态对话框;2、需要先打开对话框;3、保存好对话框的对象;4、设置进度条即可。m_proDlg.Create(...); // 先打开这个对话框m_proDlg.m_pro.SetRange();
happyparrot大哥你好,我已经先使用DoModal才进行进度条设置的,但都出错,但我没尝试过使用Create,我先試試
cnzdgs兄你好,我已经建立了关联,应该是还没有创建的问题!我先尝试
现在先Create就可以了,之后设置进度条,然后在show出来显示进度,但我不明白使用DoModal为什么不行?代码如下:m_proDlg.DoModal();//这里DoModal
//set progress bar range
CString listXmlPath(appName.c_str());
listXmlPath += _T("\\list.xml");
if (m_ftp.getFtpFile(_T("li.xml"),listXmlPath))
{
int fileNum = 0;
if(XmlDoc.LoadFile("li.xml"))
{
pElement = XmlDoc.RootElement();
if(pElement != NULL)
{
pElement = pElement->FirstChildElement();
while (pElement != NULL)
{
++fileNum;
pElement = pElement->NextSiblingElement();
}
XmlDoc.Clear();
}
}
m_proDlg.m_pro.SetRange32(0,fileNum);//这里设置范围,就在这出错了!
}