MFC如何得到一个Edit控件输入的浮点值,浮点值是人为输入的,有没有专门的像GetDlgItemInt能得整型的函数

MFC如何得到一个Edit控件输入的浮点值,浮点值是人为输入的,有没有专门的像GetDlgItemInt能得整型的函数,第1张

可以通过类向导给控件关联一个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编辑框中提取数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9679210.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存