如何为动态创建的CEdit添加数据映射

paerxiushi 2007-10-03 09:11:22
小弟希望能动态的创建数量不定CEdit控件,并且通过某种方式使用DDX方式把成员变量与控件关联。
假设事先在CDialog类中定义了10个CString变量,然后在按钮单击的事件中创建10个CEdit,那么在CEdit的Create语句之后,应该如何书写DDX代码?请问各位大侠,MFC能否实现这一功能,如果可以,如何实现?
...全文
176 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜牛 2007-10-04
  • 打赏
  • 举报
回复
DDX_Text这些要放到DoDataExchange函数中,根据你创建好的控件调用。不过既然动态创建,用不着绑定,自己直接控制控件更方便灵活。
paerxiushi 2007-10-03
  • 打赏
  • 举报
回复
我在OnInitDialog函数中加入了如下代码:

m_Edit=new CEdit();
m_Edit->Create(WS_CHILD|WS_VISIBLE|ES_WANTRETURN,CRect(100,100,200,150),this,IDC_EDIT1);

CDataExchange* ddx=new CDataExchange(this,TRUE);
mEdit[0]=_T("");
DDX_Text(ddx,IDC_EDIT1,mEdit[0]);
DoDataExchange(ddx);
其中mEdit是带10个CString的数组,我在按钮单击事件中调用UpdateData(),输入CEdit文本之后,单击按钮却没有发现mEdit[0]值改变。请问,能否让MFC知道你在DoDataExchange函数之外定义了DDX_Text语句。
xqw_001 2007-10-03
  • 打赏
  • 举报
回复
手工添加,可以for(int i=0;i<10;i++)....,具体将ddx代码copy一下,注意修改ID和变量

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧