也许你参数设置不对,试试这个UINT c = ::GetDlgItemInt(m_hWnd, IDC_EDIT1, NULL, NULL);就两个参数不至于弄错吧。
editcontrol里面输入整数,别输其他的,输入字母会返回0。
至于double、float这些带小数点的就麻烦一点了,先用GetDlgItemText读入字符串,再转化分析
可以通过ID来获取字符串:
GetDlgItem(IDC_FEEDBACKINFO)->GetWindowText(m_feedbackinfo);
然后清空:
GetDlgItem(IDC_FEEDBACKINFO)->SetWindowText(“”); //设为空字符串
这样2行代码就搞定了。
可以通过类向导给控件关联一个double型的变量,同事可以设置一个最大值和最小值给变量。然后调用UpdateData(FALSE)用变量的值初始化对话框控件,用UpdateData(TRUE)把对话框控件当前的值获取到关联的变量。如果设置了范围,在获取值的时候会检查。
写代码的方式也可关联,方式是在DoDataExchange函数中添加类似下面这样的代码。初学建议用类向导。
void CTestDlg::DoDataExchange(CDataExchange pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT1, m_dVal1); //把edit控件IDC_EDIT1关联到一个浮点数m_dVal1
DDX_Control(pDX, IDC_EDIT1, m_ctrlEdit);//把edit控件IDC_EDIT1关联到一个CEdit控件m_ctrlEdit
}
当然,也可以先获取字符串再转换为浮点数,看个人兴趣了。
在你的dialog类里创建一个成员函数 CString或TCHAR
继承实现函数OnOK,在里面调用GetDlgItemText
或者利用DDX_Text及UpdateData(TRUE)
为Edit框声明一个CString类型的变量m_Edit,然后直接str=m_Edit。
注意:要让m_Edit取得Edit框的字符串必须有语句UpdateData(),要让界面内容的变化显现出来必须有语句UpdateData(FALSE)。
没必要吧,直接在编辑框的消息函数里面写就可以了。
你可以在change里面写,这个和你思路一样,不过推荐在失去焦点的消息里面写,这个逻辑更舒服一些。
OnChangeEdit1
OnKillfocusEdit1
另外,纯数值型还有一个方法,就是定义一个数值型的关联变量,然后在classwizard里面设置变量范围就可以了,很方便。
以上就是关于VC++MFC设计界面有多个editcontrol,如何获取多个editcontrol中的值,请具体讲一下全部的内容,包括:VC++MFC设计界面有多个editcontrol,如何获取多个editcontrol中的值,请具体讲一下、MFC中用button实现 edit control中的内容的获取,保存,清除.、MFC如何得到一个Edit控件输入的浮点值,浮点值是人为输入的,有没有专门的像GetDlgItemInt能得整型的函数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)