可以通过类向导给控件关联一个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
}
当然,也可以先获取字符串再转换为浮点数,看个人兴趣了。
可以这么做。。。EDIT控件1ID命名为IDC_EDIT1,变量名m_edit1;EDIT控件2ID命名为IDC_EDIT2,变量名m_edit2。一个按钮IDC_BUTTON,双击按钮直接在里面添加以下代码:
UpdateData(TRUE);
m_edit2=m_edit1;
UpdateData(FALSE);
这样一来,在控件1里面输入任何东西,按确定以后就可以在控件2里面显示
变量命名根据你自己喜好,可以自己修改
void CChubuDlg::OnChangeEdit1()
{
int x;
x= GetDlgItemInt(IDC_EDIT_TITLE); //你EDIT控件的ID
}
我不知道你想要什么的结果,如果你是想要输入完成后再获取数据,可以把int x;
x= GetDlgItemInt(IDC_EDIT_TITLE); //你EDIT控件的ID
放到一个按钮的单击事件中。或者你说下你想要的需求
CString str;
char ch[10];
1、GetDlgItem(IDC_EDIT)->GetWindowText(str);
2、GetDlgItemText(IDC_EDIT, str);
3、GetDlgItem(IDC_EDIT)->SendMessage(WM_GETTEXT,10,(LPARAM)ch);
4、SendDlgItemMessage(IDC_EDIT,WM_GETTEXT,10,(LPARAM)ch);
5、根据相关联的成员变量直接获取输入的字符串
方法如下:
CEdit类的方法:
int GetLineCount( )
int GetLine( int nIndex, LPTSTR lpszBuffer, int nMaxLength )
这是MSDN的官方示例:
先为Textbox绑定一个CEdit类的变量123456789101112int i, nLineCount = m_myEditGetLineCount();CString strText, strLine;// Dump every line of text of the edit controlfor (i=0; i < nLineCount; i++){ // length of line i: int len = m_myEditLineLength(m_myEditLineIndex(i)); m_myEditGetLine(i, strTextGetBuffer(len), len); strTextReleaseBuffer(len); strLineFormat(_T("line %d: '%s'\n"), i, strText); AFXDUMP(strLine);}
很简单:
m_EditGetLine(0,lpszBuffer);//读取edit控件中第一行文本存入lpszBuffer指向的字符串中,m_Edit是与edit控件关联的变量
可参考代码:
int
i,
nLineCount
=
m_myEditGetLineCount();//m_myEdit是与edit控件关联的变量
CString
strText,
strLine;
//
Dump
every
line
of
text
of
the
edit
control
for
(i=0;
i
<
nLineCount;
i++)
{
//
length
of
line
i:
int
len
=
m_myEditLineLength(m_myEditLineIndex(i));
m_myEditGetLine(i,
strTextGetBuffer(len),
len);
strTextReleaseBuffer(len);
strLineFormat(_T("line
%d:
'%s'\n"),
i,
strText);
AFXDUMP(strLine);//输出得到的每行数据
}
这种情况的话,用控件变量好些,就是你绑定变量的时候,选择控件,而不是值,如图:
比如我有一个EditBox,给它绑定一个控件变量,变量名叫m_editTest,然后,在你需要判断的地方添加如下代码:
CString strValue;//获取文本框的值
m_editTestGetWindowText(strValue);
//这里只简单判断转换成整数之后的值作为例子
//如果包含字母转换出来的值就是0
//还可以自己来进行检查,比如挨个检查文本框的值是不是数字
if (atoi(strValue) <= 0)
{
//如果不是数字,执行其它 *** 作,比如光标定位到文本框之类的
AfxMessageBox("只能输入数字!");
m_editTestSetFocus();
}
判断里就可以执行你想要的 *** 作了,这个比用值变量要灵活一点,如果只是简单要求输入数字,那还是值变量要方便一点,各有优缺点
以上就是关于MFC如何得到一个Edit控件输入的浮点值,浮点值是人为输入的,有没有专门的像GetDlgItemInt能得整型的函数全部的内容,包括:MFC如何得到一个Edit控件输入的浮点值,浮点值是人为输入的,有没有专门的像GetDlgItemInt能得整型的函数、mfc里怎么从一个edit控件中获取文字,再输出、MFC中如何从OnChangEdit编辑框中提取数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)