CDataExchange::PrepareCtrl(int nIDC)裏出錯 解決

運行程序出錯,定位如下:

HWND   CDataExchange::PrepareCtrl(int   nIDC)   
  {   
  ASSERT(nIDC   !=   0);   
  ASSERT(nIDC   !=   -1);   //   not   allowed   
  HWND   hWndCtrl;   
  m_pDlgWnd->GetDlgItem(nIDC,   &hWndCtrl);   
  if   (hWndCtrl   ==   NULL)   
  {   
  TRACE1("Error:   no   data   exchange   control   with   ID   0x%04X./n",   nIDC);   
  ASSERT(FALSE);         //   出錯在此   
  AfxThrowNotSupportedException();   
  }   
  m_hWndLastControl   =   hWndCtrl;   
  m_bEditLastControl   =   FALSE;   //   not   an   edit   item   by   default   
  ASSERT(hWndCtrl   !=   NULL);       //   never   return   NULL   handle   
  return   hWndCtrl;   
  }  

你先看看nIDC的值是多少,再在自己的資源文件中找到對應的ID,如你發現nIDC=1012,然後發現

#define IDC_PROGRESS_FILE               1012

接下來在

void CxxxxxDlg::DoDataExchange(CDataExchange* pDX)函數中找

DDX_Control(pDX, IDC_PROGRESS_FILE, m_Check_LCCtrl);

刪除它就行了,

我認爲原因是你爲一個控件進行變量綁定,後來你覺得這個控件沒用了,就直接在對話框上把控件刪除了,而這裏的關聯代碼卻沒刪除

發佈了16 篇原創文章 · 獲贊 8 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章