搜了一下,只看到从CEdit继承一个CMyEdit,然后增加一些函数,那怎么才能把这CMyEdit放到对话框上去呢?
解决方案 »
- 用visual studio 2010编译的程序在xp系统运行正常,但在2000系统上报不是合法的win32应用程序
- list control 中使用复选框的问题
- 将WORD文档以二进制形式读入内存,如何直接显示出来?不保存成文件。
- 我想请教下,我一直在用vc6.0,但我看到很多朋友在用vc7.0,vc7和.net是一回事吗?
- 计时器??(在线)
- 怎么样用SMTP发送邮件!
- 谁有代理服务器的协议
- 如何解决LINK的错误?
- 想看书,不想出钱啊~~~
- 我为什么找不到类的实例化的地方?
- 长整型转换为CString的问题。
- 小问题,请教大家了.链接时警告:LINK : warning LNK4089: all references to "ODBC32.dll" discarded by /OPT:REF
2)还有就是直接在对话框类里面声明一个CMyEdit的变量 调用他的构造函数构造一个EDIT ,然后定位窗口函数把构造出来的EDIT定位好
2)子类化窗口
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
DDX_Control(pDX, IDC_POWER, m_YourEdit); //加入
//}}AFX_DATA_MAP}
当然,DDX是用来做数据交换的,WTL支持在Edit控件和字符串之间交换数据,也可以将字符串解析成数字,转换成整型或浮点型变量,还支持Check box和Radio button组的状态与int型变量之间的转换。DDX 宏
DDX可以使用6种宏,每一种宏都对应一个CWinDataExchange类的方法支持其工作,每一种宏都用相同的形式:DDX_FOO(控件ID, 变量),每一种宏都可以支持多种类型的变量,例如DDX_TEXT的重载就支持多种类型的数据。DDX_TEXT
在字符串和edit box控件之间传输数据,变量类型可以是CString, BSTR, CComBSTR或者静态分配的字符串数组,但是不能使用new动态分配的数组。
DDX_INT
在edit box控件和数字变量之间传输int型数据。
DDX_UINT
在edit box控件和数字变量之间传输无符号int型数据。
DDX_FLOAT
在edit box控件和数字变量之间传输浮点型(float)数据或双精度型数据(double)。
DDX_CHECK
在check box控件和int型变量之间转换check box控件的状态。
DDX_RADIO
在radio buttons控件组和int型变量之间转换radio buttons控件组的状态。
DDX_FLOAT宏有一些特殊,要使用DDX_FLOAT宏需要在stdafx.h文件的所有WTL头文件包含之前添加一行定义:#define _ATL_USE_DDX_FLOAT
这个定义是必要的,因为默认状态为了优化程序的大小而不支持浮点数。有关 DoDataExchange()的详细内容
调用DoDataExchange()方法和在MFC中使用UpdateData()一样,DoDataExchange()的函数原型是:BOOL DoDataExchange ( BOOL bSaveAndValidate = FALSE, UINT nCtlID = (UINT)-1 );
参数:bSaveAndValidate
指示数据传输方向的标志。TRUE表示将数据从控件传输给变量,FALSE表示将数据从变量传输给控件。需要注意得是这个参数的默认值是FALSE,而MFC的UpdateData()函数的默认值是TRUE。为了方便记忆,你可以使用DDX_SAVE 和 DDX_LOAD标号(它们分别被定义为TRUE和FALSE)。
nCtlID
使用-1可以更新所有控件,如果只想DDX宏作用于一个控件就使用控件的ID。
如果控件更新成功DoDataExchange()会返回TRUE,如果失败就返回FALSE,对话框类有两个重载函数处理数据交换错误。一个是OnDataExchangeError(),无论什么原因的错误都会调用这个函数,这个函数的默认实现在CWinDataExchange中,它仅仅是驱动PC喇叭发出一声蜂鸣并将出错的控件设为当前焦点。另一个函数是OnDataValidateError()./////////////////////////////////////////////////////////////
更详细请查看:http://blog.csdn.net/kvw3000/archive/2004/08/10/69877.aspx
m_Edit.Create().....就行了啊~~~