一个CDialog初始化时的异常问题 Error: no data exchange control with ID 0x%04X./n ", nIDC

今天运行程序的时候发现在CDialog::OnInitDialog()中的第一行程序就挂了,然后找网上的方法,都说是控件的ID有重复或者删除了控件,但是在CDataExchange函数中的声明还存在导致的。具体的原因我还没有找到,只是把前一步做的工作删除了,重新做了一遍,就好了。下面是别人的说法,记录下来给大家做参考。

HWND CDataExchange::PrepareCtrl(int nIDC)
{
 ASSERT(nIDC != 0);
 ASSERT(nIDC != -1); // not allowed
 HWND hWndCtrl;
   COleControlSite* pSite = NULL;
 m_pDlgWnd->GetDlgItem(nIDC, &hWndCtrl);
 if (hWndCtrl == NULL)
 {
   // Could be a windowless OCX
   pSite = m_pDlgWnd->GetOleControlSite(nIDC);
   if (pSite == NULL)
   {
     TRACE(traceAppMsg, 0, _T("Error: no data exchange control with ID 0x%04X./n"), nIDC);
     ASSERT(FALSE);
     AfxThrowNotSupportedException();
   }
 }
 m_idLastControl = nIDC;
 m_bEditLastControl = FALSE; // not an edit item by default

   return hWndCtrl;
}

  调试运行的时候在TRACE(traceAppMsg, 0, _T("Error: no data exchange control with ID 0x%04X./n"), nIDC);这个地方出现了错误,nIDC未1035,但是查询全解决方案,发现1035对应的ID只有一个,而且也没有出现上面说的ID重复或者删除了声明还在的问题,很是奇怪。

猜你喜欢

转载自www.cnblogs.com/cwj976277916/p/9084966.html