MFC Edit控件 error:“DDX_Control”: 不能将参数 3 从“int”转换为“CWnd &”

在使用MFC的Edit Control等控件时可能你会遇到这样的问题:error:“DDX_Control”: 不能将参数 3 从“int”转换为“CWnd &”或error:“DDX_Control”: 不能将参数 3 从“CString”转换为“CWnd &”.这是什么原因呢?

一.浅析

查看资料和搜索后,我也看到了一些具体分析:
在一个对话框程序里,有个按钮IDC_BUTTON_OK。Ctrl+w (VC6.0)或Ctrl+Shift+X进入类视图,在member variables页双击列表里的IDC_BUTTON_OK就会有个对话框出来,中间的这个组合框里一般列出2种:
一种是数据型比如CString和int;另一种就是控件型CButton。
前者数据型是该控件的标题内容,后者就是控件本身绑定的一个对象。DDX_Contral是后者型,_Control是控件类型,_TEXT是数据型。修改如下:( DDX_函数是数据交换函数)
DDX_Control(pDX, IDC_BUTTON1, m_Botton1);改成
DDX_Text(pDX,IDC_BUTTON1,m_Botton1);(或删除该语句)

二.深度分析

它出现该错误的原因是什么呢?
我发现在类向导添加控件变量int CString时(Ctrl+Shitf+X)
应该先选择Value类别,而不是Control强制该变量类型为int型,然后在变量类型中选择int、CString型.在自定义变量名.这样强制的转换就会造成具体的错误.

如上图所示添加一个Edit Control(编辑框)控件,同时定义该控件为CString类型,变量名为m_edit5,在类别中有Control和Value,选择Value。
同时好像在Button控件中我尝试选择Value,好像只有Control类别,因为有的控件很特殊,如按钮,它本身只能定义为Button类型,具体控件具体分析。
希望上面的文章能帮助大家,高手略过。同时浅析中参考了下面博客的内容:
http://hi.baidu.com/wangguang246/item/8d4cad9f03625bdf1e427128
深度分析是自己的见解,错误的地方见谅!
(2013-6-8-夜2点 by:Eastmout)

 

  • 9
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Eastmount

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值