MFC——调用Domodal对话框打不开问题解决

在点击按钮后,程序应当弹出一个对话框,但是点击后只弹出一个错误提示:

attempted an unsupported operation

MFC——调用Domodal对话框打不开问题解决_第1张图片
大意就是不支持这个操作。

因为这部分代码不是我写的,我一时有点摸不着头脑。
不过通过上网查询,也发现有出现类似问题的,解决办法也都是一句话带过:资源ID错误
eeem…这个太笼统了,但是也指出了一个大概方向吧。其实遇到这个问题,单步调试就可以了,我把断点设在了未弹出的对话框的DoDataExChage函数这里,这个函数实际上是一个映射函数,起到将对话框的控件ID和对应的变量联系起来的作用。单步调试后发现程序在某个控件那里挂掉了。再查看了一下对话框的资源视图,果然已经没有了这个控件!

解决办法:把代码中该控件定义有关的部分都删掉,一般有两个地方:一个是DoDataExchange函数里,一个是同名头文件的变量定义里有一个控件的变量。
如:DDX_Control(pDX, IDC_ST_SNAP_TIMES, m_stSnapTimes);
CJStatic m_stSnapTimes;

这应该是由于没有把控件删除干净导致的——也就是只在资源视图那里删掉了控件,源代码和头文件里却还有其定义。

你可能感兴趣的:(MFC,对话框,mfc,调试,vs2015)