
在使用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型.在自定义变量名.这样强制的转换就会造成具体的错误.

同时好像在Button控件中我尝试选择Value,好像只有Control类别,因为有的控件很特殊,如按钮,它本身只能定义为Button类型,具体控件具体分析。
希望上面的文章能帮助大家,高手略过。ddx_control同时浅析中参考了下面博客的内容,深度分析是自己的见解,错误的地方见谅!
(2013-6-8-夜2点 by:Eastmout)
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-30563-1.html
围魏救赵