求助VC高手,遇上从未遇上的问题了

来源:百度知道 编辑:UC知道 时间:2024/05/16 08:04:50
我用MFC编了一个对话框应用程序,遇上这样的问题,无法为控件关联成员变量,例如,拖入一个Edit Box控件,用Class Wizard中为其关联一个int成员变量,点确定以后,编译链接都没问题,可是程序没法运行,一运行就发生错误。
我是在我的原有的一个程序中添加的,新建的对话框工程里就没有这种现象,我实在想不出为什么我原来的程序无法为其新增的控件关联成员变量,我用VC也有一段时间了,从来没有遇到过这种问题,请大家帮帮忙,谢谢!
通过设置断点发现,在关联成员变量后,变量在程序中的声明,初始化均正常通过,是在获取对话框指针时发生的问题:
m_pMainWnd=&dlg;

m_pMainWnd=&dlg;
这里是应该不会有问题的
应该是后面出了问题
你可能在这句前用了dlg.DoModal()
然后这句之后由于C++对象与windows句柄分离
导致ASSERT(m_pMainWnd->m_hWnd)出错因为这时m_pMainWnd->m_hWnd为NULL
你最好吧那个运行时的错误写出来
什么出错文件出错行数

m_pMainWnd的值是不是有效的?

你有没有看过,如果dlg是临时变量m_pMainWnd=&dlg;这句话是没有意义的

----------------------------------------
一般见m_pMainWnd=new ...之类的多些

是你的程序代码有问题,程序在执行
DoDataExchange 函数的时候出错。最好把你代码贴出来,才有结论。
一般是还未得到窗口句柄的时候,对窗口执行操作导致的。
ASSERT(m_hWnd)导致的。

我想是头文件没有包括在内你吧!
这样你的对话框类便不能被classwizard认识!

关闭工程->删除工程目录下clw文件和ncb文件,打开工程,点击使用Class Wizard功能,会提示你创建新的clw文件,重建即可。