问题如下:
编译、链接无错,全通过,但是准备运行时,弹出了这个对话框,如标题。 具体定位到dlgdata.cpp文件,这个文件是MFC的。出现问题的代码如下: 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, "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; }
项目情况如下:
我建立一个对话框类CMainWndDlg,在这个对话框上只有添加了一个CTreeControl,关联变量为CTreeControl 类型的m_CircleTree.(到现在为止,我还值得怀疑的地方就是我改动了对话框的IDD,因为全段时间我不改变这个IDD程序就不运行)。
已经尝试过的方法:
在网上也查了一下,中文的,英文的,都看过。没解决。 也尝试着在CMainWndDlg类里的DoDataExchange(CDataExchange* pDX)把//DDX_Control(pDX, IDC_CIRCLETREE, m_CircleTree);掉,对,这样,程序确实可以运行了,但是我在对话框上面添加的这个tree control就不能用了。
也尝试过在这个对话框上在添加一个tree control,新添加的控件出现同样的问题,也就刚刚添加,全新。所以,我怀疑是对话框的问题。对吗?但是不知道怎么把才好?
小弟新手,望各路大神不舍赐教,指点小弟一下~ :-)