【解决但疑惑】MFC报错“不支持尝试执行的操作“一种简单粗暴的解决方法

先分享GPT告诉相关MFC报错“不支持尝试执行的操作”的相关知识:

MFC报错"不支持尝试执行的操作"通常是由于在类的初始化函数中出现问题导致的。一种可能的解决方法是检查DoDataExchange()函数中的DDX_Control()函数调用。1]

在DoDataExchange()函数中,DDX_Control()函数用于将控件和成员变量进行关联。确保该函数的第二个参数(控件ID)与对话框中实际的控件ID相匹配。例如,如果在DoDataExchange()函数中写入了类似于以下代码: DDX_Control(pDX, IDC_BUTTON_MAXIMUN, m_btu_Max); 而对话框中按钮的ID实际上是不同的,这将导致初始化错误。

另外,有时候在操作界面时,我们可能会意外滑动鼠标,导致控件ID被错误地更改。这样一来,即使编译不会出现错误,但在运行时会提示错误。因此,在开发过程中,建议保持良好的编程习惯,遵循变量命名规则(如骆驼命名法)并为代码编写适当的注释,以提高代码的可读性。此外,您还可以建立一个文档,以记录软件中变量的命名,以便以后查阅。

正文:

最近在VS2019用MFC做界面,碰到了个问题。

在创建控件时,属性一栏显示的name是IDC_STATIC_RESAULT_VIEW712 。

把这个IDC对应到控件

DDX_Control(pDX, IDC_STATIC_RESAULT_VIEW712, m_static_Device);

结果一种报错"不支持尝试执行的操作"。明明已经在resource.h文件定义了IDC_STATIC_VIEW712。

后面被逼恼了想着双击控件会自动在BEGIN_MESSAGE_MAP绑定控件的IDC,我倒要看看它是个什么东西。

果然,自动绑定的IDC并不是IDC_STATIC_VIEW712,而是IDC_STATIC_VIEW7。把IDC_STATIC_VIEW7替换上去,果然不再报错"不支持尝试执行的操作"。

目前还未搞清楚为何在属性一栏生成的是IDC_STATIC_VIEW712,但实际上该控件绑定的是IDC_STATIC_VIEW7。若有告知,感激不尽!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值