真是奇怪了(MFC关联变量)
我打开前几天创建的MFC的对话框程序,在RC文件上添加了3个编辑框3个静态文本框和一个组合框,编译,链接,然后运行程序,一切正常。但是在我给组合框关联了一个CComboB...
我打开前几天创建的MFC的对话框程序,在RC文件上添加了3个编辑框3个静态文本框和一个组合框,编译,链接,然后运行程序,一切正常。但是在我给组合框关联了一个CComboBox类型的变量后(只是关联,还有添加其他代码),编译,链接没问题,但是运行程序却没有窗口显示了。然后我取消了那个变量,又给3个中的1个编辑框关联了一个CString的变量,编译,链接没问题,运行也有窗口,但是马上程序崩溃了,出现了错误。提示"...我们对此...抱歉...",我只是关联变量,其他的什么也没做,难道就至于此吗?我把变量都删了之后,就不会出现错误了,程序也不会崩溃了。这是什么原因啊?
展开
1个回答
2013-12-14
展开全部
有可能你是不是删除了什么控件 而最开始 你给这个控件关联了一个变量 而在DoDataExchange()这个函数里 DDX_Control(pDX, YOURID, YOURVAR);这个函数 实现变量与控件的关联。 我们再跟进DDX_Control()这个函数里,会发现他调用PrepareCtrl()这个函数,而这个函数的函数体 { ASSERT(nIDC != 0); ASSERT(nIDC != -1); // not allowed HWND hWndCtrl; m_pDlgWnd->GetDlgItem(nIDC, &hWndCtrl);//这句话 获得你控件的窗口句柄,如果你删除了控件 那么hwndctrl返回null if (hWndCtrl == NULL) { TRACE1("Error: no data exchange control with ID 0x%04X.\n", nIDC);//如果删除控件 进入这里,然后报错... ASSERT(FALSE); AfxThrowNotSupportedException(); } }
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询