关闭模态对话框关闭报错,找不到为什么,新手求教。
个人觉得是销毁模态对话框的时候的问题,可能是某个变量没有释放导致,但是具体原因找不到,我也只使用了一个指针变量而已,如果我直接最后delete掉这个变量的话窗口打开就会自动关闭了。报错如下:

如果我选择重试,进入调试程序,会在如下图处中断:

其中这个模态对话框中的代码只有在OnInitDialog中调用了如下:
目前不知道错误出在哪里了,不能上传附件所以没法都发出来。请大神知道一下是哪里的问题,另外代码有哪些是多余或者写法有问题的请指出,谢谢各位。

如果我选择重试,进入调试程序,会在如下图处中断:

其中这个模态对话框中的代码只有在OnInitDialog中调用了如下:
#define GET_WINHTTP_STRING(IWinHttpRequestPtr_Obj,CString_Obj){\
_variant_t varBody=IWinHttpRequestPtr_Obj->GetResponseBody();\
ULONG datalen=varBody.parray->rgsabound[0].cElements;\
char* pContent = (char*)varBody.parray->pvData;\
CString_Obj=pContent;}
CString GetMidSteByLAndR(CString strBuffer, CString strLeft, CString strRight)
{
CString strRet;
int iStart, iEnd;
if (strBuffer.Find(strLeft) != -1)
{
iStart = strBuffer.Find(strLeft);
iStart += strLeft.GetLength();
if (strBuffer.Find(strRight, iStart) != -1)
{
iEnd = strBuffer.Find(strRight, iStart);
strRet=strBuffer.Mid(iStart,iEnd-iStart);
return strRet;
}
}
return strRet;
}
BOOL CMyDialog_GN::OnInitDialog()
{
CDialogEx::OnInitDialog();
// TODO: 在此添加额外的初始化
//获取父窗口指针,用来取得网站链接信息
CString strGetUrl;
Cfeifeicms网站应用Dlg* m_pPWnd = (Cfeifeicms网站应用Dlg*)GetParent();
strGetUrl = m_pPWnd->strUrl;
//判断链接是否有加斜杠
if (strGetUrl.Right(1) == _T("/"))
strGetUrl += _T("index.php?s=Admin-Admin-Config");
else
strGetUrl += _T("/index.php?s=Admin-Admin-Config");
//打开请求链接
HRESULT hr=m_pPWnd->m_pHttpReq->Open(_T("GET"),strGetUrl.AllocSysString());
if (FAILED(hr))
return FALSE;
hr = m_pPWnd->m_pHttpReq->Send();
if (FAILED(hr))
return FALSE;
//获取网页返回内容
_bstr_t bstrRes = m_pPWnd->m_pHttpReq->ResponseText;
CString strCntRes = bstrRes;
//调试用的对话框
SetDlgItemText(IDC_EDIT1, strCntRes);
//获取指定网页内容和显示到界面上
CString strWZMC= GetMidSteByLAndR(strCntRes,_T("id=\"site_name\" value=\""),_T("\""));
CString strWZYM= GetMidSteByLAndR(strCntRes, _T("id=\"site_url\" value=\""), _T("\""));
CString strAZLJ= GetMidSteByLAndR(strCntRes, _T("id=\"site_path\" value=\""), _T("\""));
CString strBNXX= GetMidSteByLAndR(strCntRes, _T("id=\"site_icp\" value=\""), _T("\""));
CString strZZYX= GetMidSteByLAndR(strCntRes, _T("id=\"site_email\" value=\""), _T("\""));
CString strZDGJZ= GetMidSteByLAndR(strCntRes, _T("id=\"site_keywords\" value=\""), _T("\""));
CString strZDMS = GetMidSteByLAndR(strCntRes, _T("id=\"site_description\" value=\""), _T("\""));
SetDlgItemText(IDC_EDIT_DLG_FUNCTION_WZMC, strWZMC);
SetDlgItemText(IDC_EDIT_DLG_FUNCTION_WZYM, strWZYM);
SetDlgItemText(IDC_EDIT_DLG_FUNCTION_AZLJ, strAZLJ);
SetDlgItemText(IDC_EDIT_DLG_FUNCTION_BNXX, strBNXX);
SetDlgItemText(IDC_EDIT_DLG_FUNCTION_ZZYX, strZZYX);
SetDlgItemText(IDC_EDIT_DLG_FUNCTION_ZDGJZ, strZDGJZ);
SetDlgItemText(IDC_EDIT_DLG_FUNCTION_ZDMS, strZDMS);
return TRUE;
// return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}目前不知道错误出在哪里了,不能上传附件所以没法都发出来。请大神知道一下是哪里的问题,另外代码有哪些是多余或者写法有问题的请指出,谢谢各位。
...全文
相关推荐
IntelliJ IDEA 报错:找不到包或者找不到符号的问题及解决方案
主要介绍了IntelliJ IDEA 报错:找不到包或者找不到符号的问题及解决方案,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
idea 找不到符号或找不到包的几种解决方法
主要介绍了idea 找不到符号或找不到包的几种解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
MFC学习之模态对话框和非模态对话框
基于MFC向导实现的模态对话框和非模态对话框的代码,程序是基于vs2013写的,可以完美运行,适合新手学习,大佬请忽略!
子模态对话框关闭后刷新父模态对话框
因系统需求,要在关闭子模态对话框后刷新父模态对话框,做的一个小测试。
vc模态和非模态对话框关闭过程
非模态对话框相对于模态对话框,他的创建和销毁过程和模态对话框有一定的区别,非模态对话框需要重载函数OnCanel,并且在这个函数中调用DestroyWindow。并且不能调用基类的OnCancel,因为基类的OnCancel调用了EndDialog这个函数,这个函数是针对模态对话框的。 还有一个必须重载的函数就是PostNcDestroy,这也是一个虚函数,通常的非模态对话框是用类的指针,通过new创建的,这就需要在PostNcDestroy函数中delete掉这个指针。


网络编程
