我定义了一个从对话控派生出来的类 CNewDlg, 现在,想通过该对话框,让用户输入数据,并且,将数据入库:
CNewDlg insSEQEdit; 
if(insSEQEdit.DoModal() == IDOK)
{ }
可是在执行到insSEQEdit.DoModal()  时(基调用CDialog::DoModal()时),报错():failure to load the dialog template resource,我该怎么办?
int CDialog::DoModal()
{
// can be constructed with a resource template or InitModalIndirect
ASSERT(m_lpszTemplateName != NULL || m_hDialogTemplate != NULL ||
m_lpDialogTemplate != NULL); // load resource as necessary
LPCDLGTEMPLATE lpDialogTemplate = m_lpDialogTemplate;
HGLOBAL hDialogTemplate = m_hDialogTemplate;
HINSTANCE hInst = AfxGetResourceHandle();
if (m_lpszTemplateName != NULL)
{
hInst = AfxFindResourceHandle(m_lpszTemplateName, RT_DIALOG);
HRSRC hResource = ::FindResource(hInst, m_lpszTemplateName, RT_DIALOG);
hDialogTemplate = LoadResource(hInst, hResource);
}
if (hDialogTemplate != NULL)
lpDialogTemplate = (LPCDLGTEMPLATE)LockResource(hDialogTemplate); // return -1 in case of failure to load the dialog template resource
if (lpDialogTemplate == NULL)
return -1;

解决方案 »

  1.   

    我使用Debug跟踪下来的,发现运行时,调用基类CDialog::DoModal()
    时,模板加不上去,为什么?咋办??
      

  2.   

    failure to load the dialog template resource装载对话框资源失败,你检查一下你的对话框初始化的时候是不是有错误,另外,真的搞不定,删了那个对话框再来一遍,相信你不会在同一个地方错两次吧
      

  3.   

    首先确定对话框的style是不是Popup,再检查对话框初始话代码,如不行再来一遍。
      

  4.   

    直接用"Insert Dialog"试一试。