动态创建Edit控件后怎样关联成员变量?或者获取输入在Editbox里面的值

程序是这样的:通过在事先静态创建的Edit控件输入一个正整数n,点击“创建Edit”按钮后自动创建n个Editbox显示在下面。按钮代码如下:voidCTest01Dlg... 程序是这样的:通过在事先静态创建的Edit控件输入一个正整数n,点击“创建Edit”按钮后自动创建n个Editbox显示在下面。
按钮代码如下:
void CTest01Dlg::OnButtonCreateedit()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
int a1=75;
int b1=75;
int a2=100;
int b2=100;
for(int a=0;a<m_dN1;a++)
{
a1=a1+30;
a2=a2+30;
CRect rc(a1,b1,a2,b2);
AddEdit(rc);
}
}
void CTest01Dlg::AddEdit(CRect rc)
{
int n=m_ptr.GetSize();
pEdit=new CEdit;
ASSERT(pEdit->Create(WS_VISIBLE | WS_CHILD,rc,this,IDC_N1+n));
pEdit->ShowWindow(SW_SHOW);
if(pEdit!=NULL)
m_ptr.Add((void*)pEdit);
}
其中m_ptr是定义的成员变量CPtrArray m_ptr;
现在也不清楚创建的控件ID,也不清楚要怎么关联变量,或者获取新的Editbox里面的数值,新人求帮助~
展开
 我来答
intehel
推荐于2016-04-06 · TA获得超过1293个赞
知道大有可为答主
回答量:1601
采纳率:100%
帮助的人:1765万
展开全部
控件的ID是你指定的啊,就是Create函数的最后一个参数IDC_N1+n

需要获取里面数值的时候直接:
GetDlgItemInt(IDC_N1+n)即可。

例如要获取动态创建的第一个文本框的内容,代码就是:
int n = GetDlgItemInt(IDC_N1);
第二个就是
int n = GetDlgItemInt(IDC_N1+1);

如果要获取动态创建的第一个文本框控件对象的指针:
CEdit* pEdit = (CEdit*)GetDlgItem(IDC_N1);
更多追问追答
追问
按你说的新加了按钮,点击就应该获取第二个Edit控件输入数值。可是没反应。m_dN1是最初静态Edit控件关联的变量。
void CTest01Dlg::OnButtonCalculate()
{UpdateData(true);
int n=GetDlgItemInt(IDC_N1+1);
m_dN1=n;
UpdateData(false);}
另外那个指针应该怎么用,能不能讲详细点?
追答
你把整个工程传上来吧,要不不知道哪里还有问题,或者等下我写个示例?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式