MFC非模态对话框中,点击Button启动另一个模态对话框,弹出“不支持尝试执行的操作”

在MFC应用程序中,一个非模态对话框A的Button点击事件触发模态对话框B的DoModal()时出现错误,提示“不支持尝试执行的操作”。问题出现在DoDataExchange(),但并非由于控件删除或ID重复。通过更改对话框B的ID序号解决了问题,显示出资源冲突可能是同一解决方案中不同项目间的资源重复。
摘要由CSDN通过智能技术生成

>>===问题现象===<<

正在做的一个命令启动后,会打开一个非模态对话框A,点击其中的一个Button按钮,会DoModal()另一个模态对话框B。

但从某一个变更集开始,启动命令点击Button后会弹出“不支持尝试执行的操作”的提示对话框,点该对话框的“确定”后,继续弹出“不支持尝试执行的操作”

对话框B在多个地方都会启动,也有从其他对话框DoModal()打开的,除了对话框A,其他地方都能正常启动。

 

>>===问题研究===<<

发现问题后真是百思不得其解,查了很多中文网站,关于弹出“不支持尝试执行的操作”,主要查到以下两种情况:

(1)删除了对话框中的控件,但没有删除控件关联的变量或者在DoDataExchange()对应的DDX。

(2)resource.h中ID重复。

第一种情况,对话框B中不存在这种问题。

第二种情况,在对话框B的资源中确实有很多ID对应的序号(如:#define  IDC_XXX_XXX  1000,序号为:1000),在同一资源文件中是重复的。查了一下序号重复的问题,对话框

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值