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)

 

时间: 2024-09-12 02:48:04

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

mfc edit控件怎么响应键盘消息?

问题描述 mfc edit控件怎么响应键盘消息? 比如我用edit做个密码框,输入完密码,直接按回车键就可以登录.不用鼠标去点按钮了,这样怎么做呢? 解决方案 添加edit控件的键盘消息映射,ON_WM_KEYDOWN( ),添加对应处理函数的代码,通过检测输入的是否是回车来决定登录动作.

mfc-MFC 主窗口中有多个Edit控件,如何动态的改变指定的Edit的背景颜色

问题描述 MFC 主窗口中有多个Edit控件,如何动态的改变指定的Edit的背景颜色 我在一个MFC项目中创建了几个Edit控件(直接拖的控件),然后想动态的改变指定的Edit控件的背景颜色,该如何实现? 本人是新手,请大神说的详细一点.万分感谢. 解决方案 MFC中如何从EDIT控件中获取文字MFC控件之Edit ControlMFC EDIT控件自动显示垂直滚动条 解决方案二: 如果想各个按钮颜色各不相同,就需要自绘按钮. 百度搜搜自绘按钮的使用方法吧.

vc++在MFC对话框上用程序生成控件(比如Text和Edit控件),求如何实现?

问题描述 vc++在MFC对话框上用程序生成控件(比如Text和Edit控件),求如何实现? vc++我想在MFC对话框上用程序生成控件(比如Text和Edit控件),求如何实现?(不是用工具条拖动控件到对话框上) 1.用程序生成控件2.控件在对话框上准确定位 求大神指导下 解决方案 一个 CreateWindow() 就能搞定,例子很多,自己找. 解决方案二: MFC我没有研究过,但我想MFC中应该可以调用Win32API吧,可以看看这几个,虽然不是MFC,但是在MFC里想必是可以用的.htt

VC增强Edit控件为日期输入控件

MFC所提供的组件已经可以完成很多功能了,但有时候我们还需要这些控件按我们自己的意图去处理.比如EDIT控件,虽然我们可以设置EDIT控件为只能接受数字属性,但如果我们还需要它可以接收数字意外的字符,比如需要控件只能接收"2004-02-20"这样的格式的日期字符呢?我们需要自己在WM_CHAR消息里面来处理输入的字符.可是,当输入字符后,Windows会向Edit控件发送WM_CHAR消息,应用程序会调用Windows默认的Edit控件窗口处理函数WndProc来处理该控件.这时我们

VC/MFC ListCtrl 控件功能使用汇总(转)

以下未经说明,listctrl默认view 风格为report 相关类及处理函数 MFC:CListCtrl类 SDK:以 "ListView_"开头的一些宏.如 ListView_InsertColumn -------------------------------------------------------------------------------- 1. CListCtrl 风格      LVS_ICON: 为每个item显示大图标      LVS_SMALLIC

edit-MFC自绘EDIT控件和Text控件。怎么消除先前的文字?

问题描述 MFC自绘EDIT控件和Text控件.怎么消除先前的文字? 把EDIT和TEXT设成透明色,和窗口背景一样.1.SetWindowText 和以前的文字重叠. 2.按退格建删除文字,以前的文字还在EDIT里面,再次输入还是重叠.怎么解决? 解决方案 没办法,只能请教老师了 解决方案二: MFC控件自绘-Static TextEDIT控件自绘MFC中如何从EDIT控件中获取文字 解决方案三: 应该是没有把对应的控件内容清空或者是否没有引起界面重绘 解决方案四: 没办法,只能请教老师了

c++-MFC Tab控件下的page与page的控件冲突

问题描述 MFC Tab控件下的page与page的控件冲突 我在MFC下做了4个对话框,其中一个是主对话框,内有一个Tab控件,然后剩下的三个对话框作为子对话框,也就是tab控件的三个page. 我在第一个page(子对话框)中添加了一些控件,如listctrl控件,同时关联了变量. 程序运行没有问题. 接着我在其他两个page(子对话框)中添加了相同的控件,同时关联了变量,接下来就是令我不解的地方,程序崩溃了.我什么都没做,只是关联了一下控件变量,不知道为什么程序会崩溃. 在线等,求大神指导

mfc 图片控件旋转问题,一次旋转90°

问题描述 mfc 图片控件旋转问题,一次旋转90° mfc 图片控件旋转,这个可以旋转么?怎么写代码?求大神指导,菜鸟一个 解决方案 控件没有办法旋转,但是上面绘制的图形或者文字是可以得. 解决方案二: 第一步,你必须知道位图即BMP格式的文件的结构. ??????????????位图(bmp)文件由以下几个部分组成: ?????????????????????1.BITMAPFILEHEADER,它的定义如下: ?????????????????????????typedef?struct?t

MFC 定制控件(Customize Control) 及 MFC CWnd和WIN32 HWND关联方法

MFC 定制控件(Customize Control) 及 MFC CWnd和WIN32 HWND关联方法  <参考资料 MSDN MFC TNO 15>  文档将概述MFC中定制自定义控件的3种方法: 拥有者绘制控件(Owner Drawing Control and Menu)   自绘制控件(self drawing control and menu)  和子集化(subclass)  1  使用MFC方法定制控件必备的几个基本概念:  控制定制风格的控件的几个标准Windows消息: