精华内容
下载资源
问答
  • CEdit获取编辑框的内容 大家对获取编辑框的内容可能已经很熟悉了,无非是先定义一个CString类型的变量m_str,然后调用GetDlgItem(编辑框ID)->GetWindowText(str),这样就可以轻松获取到编辑框的内容。但如果我要...

    CEdit获取编辑框的内容

    大家对获取编辑框的内容可能已经很熟悉了,无非是先定义一个CString类型的变量m_str,然后调用GetDlgItem(编辑框ID)->GetWindowText(str),这样就可以轻松获取到编辑框的内容。但如果我要设置此编辑框为只读模式,要求我们获取编辑框的内容,那该怎么办呢?

    我们知道,ReadOnly是CEdit的成员变量,显然定义CString类型的变量不能完成既定目标。这时我们就必须为编辑框绑定一个CEdit类型的控件变量m_string。将此编辑框设置为只读模式就很简单了,直接调用函数m_string.SetReadOnly();就可以了。

    获取单行文本相对比较简单,这里简单介绍下,关于获取多行文本,MSDN有详细介绍,还有实例,大家可以参考下。具体方法如下:

    首先,我们定义一个CString类型的变量str_data,用来保存获取到的编辑框的内容。然后计算编辑框文本的长度,使用CEdit的成员函数GetLine即可得到编辑框的内容,最后要记得释放字符串缓冲区,否则有关CString的操作将不可用!代码如下:

    m_string.SetReadOnly();

    CString str_data;

    int len = m_string.LineLength();

    m_string.GetLine(0,str_data.GetBuffer(len), len);

    str_data.ReleaseBuffer(len);

    如果想把编辑框的文本转化为int型,只需调用函数atoi,如下所示:

    int num = atoi(str_data);

    则num中保存的就是int型的数据。

    最后与网友分享两篇别人总结的相关知识。

    1、CEdit获取一行的文字

    CEdit的接口LineLength(nCharIndex) 的参数并不是指CEdit的第几行,需要通过函数LineIndex来进行转换。

    int nIndex = 4 ; //假设要获取CEdit的第4行的文字

    int nCharIndex = nCharIndex = this->LineIndex(nIndex) ;

    int nlen = this->LineLength(nCharIndex) ;

    CString strText ;

    this->GetLine(nIndex, strText.GetBuffer(nlen), nlen) ;

    strText.ReleaseBuffer() ;

    2、获取鼠标双击CEdit的那行文字

    void MyEdit::OnLButtonDblClk(UINT nFlags, CPoint point)

    {

        CEdit::OnLButtonDblClk(nFlags, point) ;

       

        int nIndex = this->CharFromPos(point) ;

        int nCharIndex = LOWORD(nIndex) ; 

        nIndex = HIWORD(nIndex) ;

        if (nIndex == -1)

        {

            return ;

        }

        CString strText ;

        int nCharIndex = this->LineIndex(nIndex) ;

      

        int nlen = this->LineLength(nCharIndex) ;

        this->GetLine(nIndex, strText.GetBuffer(nlen), nlen) ;

        strText.ReleaseBuffer() ;

    }

    展开全文
  • vc++获取编辑框的内容两种方法

    千次阅读 2019-03-19 12:41:20
    1、设置编辑框变量 在MFC的基本对话框中,我建立了一个编辑框控件,变量名为 m_Min ,类型...就两句代码就可以获取m_user中的内容了 2、直接获取 CString str; GetDlgItem(IDC_EDIT1)->GetWindowText(str); Message...

    1、设置编辑框变量

    在MFC的基本对话框中,我建立了一个编辑框控件,变量名为 m_Min ,类型为value int

    CString c_user;
    m_user.GetWindowText(c_user);

    就两句代码就可以获取m_user中的内容了

    2、直接获取

    CString str;
    GetDlgItem(IDC_EDIT1)->GetWindowText(str);
    MessageBox(str);

    展开全文
  • 我今天小测试的程序,动态创建30个编辑框,我想在遍历获取编辑框的内容 我动态创建编辑框的代码是,动态创建了30个边框 procedure TForm1.buildedit; var sedit:TEdit; //直接生成edit不用赋值就行 i,j:...
  • MFC获取编辑框内容以及UpdateData方法

    万次阅读 2014-04-27 01:11:47
    关于编辑框还有一些其他的问题:如UpdateData(TRUE),函数参数为TRUE或FALSE的含义,以及编辑框关联值变量(CString)以及控件变量(Edit)获取编辑框的内容等问题。先就这几个问题做小结,供后续参考,后续再做补充...

    编程中多次用到获取界面中编辑框中的内容。关于编辑框还有一些其他的问题:如UpdateData(TRUE),函数参数为TRUEFALSE的含义,以及编辑框关联值变量(CString)以及控件变量(Edit)获取编辑框的内容等问题。先就这几个问题做小结,供后续参考,后续再做补充。

    新建测试界面如下:


    测试工程界面

    一、关联字符串变量的编辑框获取编辑框的内容

    关联字符串变量的编辑框添加变量(值变量,Value  CString 如下图所示)


    编辑框控件关联值变量

    对应地测试代码添加到 测试对应的消息响应函数中,代码如下:

    void CGetEditctrlDataDlg::OnTest()
    {
    //调用函数
    //BOOL b=TRUE;
    BOOL b=FALSE;
    UpdateData(b);
    CString str;
    //b=TRUE  str的值为输入编辑框的字符串值
    //b=FALSE  str的值为 空
    str=m_strValue;
    MessageBox(str);
    }

    代码中调用函数UpdateData获取变量的值,参数为TRUEFALSE所得结果见注释。

    这里对UpdateData函数做一个小结:

    UpdateData(TRUE): 表示写数据,将窗口控制变量写入内存(更新数据) 

    -------使用OnOk时将自动调用UpdateData(True) ,用以将窗口数据写入内存相应成员变量中

    UpdateData(FALSE): 表示读数据,即显示窗口读取内存的数据以供实时显示  

    ------使用OnInitDialog中,MFC调用UpdateData((FALSE)将内存成员数据显示到对应的窗口中

     

    所谓写数据,即是将外部数据写入到内存变量中(改变内存数据);

    所谓读数据,显示窗口读取内存数据(不改变内存数据)

     

    二者经常使用于如下情况:  

         在设置窗口数据默认值时,或将窗口数据作为控制参数传入到内存时,这时需要往内存写入数据,此时应首先调用UpdataData(TRUE); 

         写入之后,需要观察内存这个数据的变化,这时应该时刻读取内存数据,此时应调用UpdateData(FALSE)

     

    例如 CDialog两个成员函数OnInitDialog()和OnOK()

    BOOL CDialog::OnInitDialog()
    { 
    // execute dialog RT_DLGINIT resource 
    BOOL bDlgInit; 
    if (m_lpDialogInit != NULL)  
    bDlgInit = ExecuteDlgInit(m_lpDialogInit); 
    else  
    bDlgInit = ExecuteDlgInit(m_lpszTemplateName);
    if (!bDlgInit) 
    {  TRACE(traceAppMsg, 0, "Warning: ExecuteDlgInit failed during dialog init./n");  
    EndDialog(-1);  
    return FALSE; 
    }
    // transfer data into the dialog from member variables 
    if (!UpdateData(FALSE)) 
    {  
    TRACE(traceAppMsg, 0, "Warning: UpdateData failed during dialog init./n");  
    EndDialog(-1);  return FALSE; 
    }
    // enable/disable help button automatically 
    CWnd* pHelpButton = GetDlgItem(ID_HELP); 
    if (pHelpButton != NULL)  
    pHelpButton->ShowWindow(AfxHelpEnabled() ? SW_SHOW : SW_HIDE);
    return TRUE;    // set focus to first one
    }

    void CDialog::OnOK()
    { 
    if (!UpdateData(TRUE)) 
    {  
    TRACE(traceAppMsg, 0, "UpdateData failed during dialog termination./n");  // the UpdateData routine will set focus to correct item  
    return; 
    } 
    EndDialog(IDOK);
    } 

    关于UpdateDate函数,设置断点发现,该函数在CDialog启动的时候,和关闭的时候都调用。解释:CWnd::UpdateData
    调用此函数来初始化对话框中的数据,或者从对话框中接收数据。当一个模态对话框被创建,框架会自动在CDialog::OnInITDialog中调用UpdateDataFALSE),这种调用发生在对话框可视情况下,默认的CDialog::OnOK会调用UpdateDataTRUE)来接收数据。。。如果接收成功。。。就会关掉对话框。。。Cancel对话框不会调用此函数而直接关闭对话框。 简单的说,如果Updatedata(TRUE) == 将控件的值赋值给成员变量,Updatedata(FALSE) == 将成员变量的值赋值给控件

    二、关联控件变量的编辑框获取编辑框中的内容

    编辑框控件关联控件变量

    对应地测试代码添加到 测试对应的消息响应函数中,代码如下:

    void CGetEditctrlDataDlg::OnTest2()
    {
    //第二个编辑框关联的是一个Edit的控件变量
    CString str;
    //方法1 获取没有关联 值变量 的编辑框中的内容 通过ID号
    //GetDlgItem(IDC_EDIT_TWO2)->GetWindowText(str);
    //方法2 获取没有关联 值变量 的编辑框中的内容 通过编辑框关联的 控件变量
    m_editctrl.GetWindowText(str);
    MessageBox(str);
    }

    代码中方法1和方法2都是有效的,都可以在此情况下获取编辑框中的内容。

    展开全文
  • 获取编辑框控件的内容的几种获取方法。... 3 1.GetDlgItem获取文本编辑框的指针来获取内容先使用 GetDlgItem(编辑框的ID)获取编辑框的指针。再指向编辑框的GetWindowText函数将获取内容保存至指定

    获取编辑框控件的内容的几种获取方法。

     

    1.GetDlgItem获取文本编辑框的指针来获取内容. 1

    2.使用 GetDlgItemText 函数获取文本框的内容。. 1

    3.使用 GetDlgItemInt来直接获取数值内容。. 2

    4.第四种方法在类的定义 变量 来关联 控件. 2

    5.第五种使用SendMessage获取编辑框内容。. 3

     

    1.GetDlgItem获取文本编辑框的指针来获取内容

    先使用 GetDlgItem(编辑框的ID)获取编辑框的指针。

    再指向编辑框的GetWindowText函数将获取内容保存至指定的字符数组里。

    下面是代码。

         int num1,num2,num3;

         char char1[10],char2[10],char3[10];

         GetDlgItem(IDC_EDIT1)->GetWindowText(char1,10);

         GetDlgItem(IDC_EDIT2)->GetWindowText(char2,10);

         num1=atoi(char1);

         num2=atoi(char2);

         num3=num2+num1;

         itoa(num3,char3,10);

         GetDlgItem(IDC_EDIT3)->SetWindowText(char3);

     

    2.使用 GetDlgItemText 函数获取文本框的内容。

    GetDlgItemText 函数 从代码分析上来看,GetDlgItemText 函数是第一种方法的简写版。

     

         int num1,num2,num3;

         char char1[10],char2[10],char3[10];

     

         GetDlgItemText(IDC_EDIT1,char1,10);

         GetDlgItemText(IDC_EDIT2,char2,10);

         num1=atoi(char1);

         num2=atoi(char2);

         num3=num2+num1;

         itoa(num3,char3,10);

         SetDlgItemText(IDC_EDIT3,char3);

     

    3.,使用 GetDlgItemInt来直接获取数值内容。

    第二个例子是获取的文本内容,转成数值内容的话,就得使用atoi函数比较麻烦 就可以使用GetDlgItemInt来直接获取数值内容。

     

    代码如下

         int num1,num2,num3;

         char char1[10],char2[10],char3[10];

     

         num1=GetDlgItemInt(IDC_EDIT1);

         num2=GetDlgItemInt(IDC_EDIT2);

         num3=num1+num2;

         SetDlgItemInt(IDC_EDIT3,num3);

     

    4.第四种方法在类的定义 变量 来关联 控件

    单击 查看建立类向导—Member Variables选项卡 单击对应的Control Ids的名称

    Member variable name填入 一个变量名即可。

     

    如果想直接取值的话 ,在category中选择Value,那么这个变量名就是对应的值

         UpdateData();

         m_edit3=m_edit1+m_edit2;

         UpdateData(false);

     

    可以选择数据类型,来定义变量的数据类型。

     

    如果是文本型的。

    就在Category中选择 control,那么,这个变量名,就对应这个控件。就利用这个变量名进行操作。

         int num1,num2,num3;

         char char1[10],char2[10],char3[10];

     

         m_the_edit1.GetWindowText(char1,10);

         m_the_edit2.GetWindowText(char2,10);

         num1=atoi(char1);

         num2=atoi(char2);

         num3=num1+num2;

         itoa(num3,char3,10);

         m_the_edit3.SetWindowText(char3);

     

     

    5.第五种使用SendMessage获取编辑框内容。

    使用发送消息的方式。

    1)。采用全局类的SendMessage来发送获取消息内容的。

    注意 第一个参数是目标窗口控件的句柄,第二个参数是固定的表示符,第三个是第四个字符变量的大小,第四个是字符变量数组的指针。

    ::SendMessage(GetDlgItem(IDC_EDIT1)->m_hWnd,WM_GETTEXT,10,(LPARAM)char1);

    也可以这要获取句柄。

    ::SendMessage(m_the_edit1.m_hWnd,WM_GETTEXT,10,(LPARAM)char1);

    2)。在窗口类中也有SendMessage函数。

    GetDlgItem(IDC_EDIT1)->SendMessage(WM_GETTEXT,10,(LPARAM)char1);

    或者这样

    m_the_edit1.SendMessage(WM_GETTEXT,10,(LPARAM)char1);

     

    也有省事的SendDlgItemMessage 函数,可以直接发送获取文本的消息指指定控件的ID

    SendDlgItemMessage(IDC_EDIT2,WM_GETTEXT,(LPARAM)char2);

     

     

     

     

    展开全文
  • MFC 获取编辑框内容

    2020-08-13 11:27:26
    (2)在MFC基本对话框中,创建一个编辑框控件,为控件添加一个类型为CString变量m_Edit ,m_Edit 就是编辑框值。 CString str; str.Format(m_Edit); 2、方法二:通过ID获取 CString str; GetDlgItem...
  • 先使用GetDlgItem(编辑框的ID)获取编辑框的指针。 再指向编辑框的GetWindowText函数将获取内容保存至指定的字符数组里。 下面是代码。 int num1,num2,num3; char char1[10],char2[10],char3[10]; ....
  • 编辑框EditText在开发过程中还是很常用的 , 而有的时候我在想 , 如何实时的获取编辑框的内容呢 ? 例如 在商品列表中 , 我想在用户输入关键字的时候 自动匹配结果 然后实时的展示出来 , 这就需要用到EditText的一个...
  • MFC CEdit获取编辑框内容

    万次阅读 2016-02-29 10:36:17
    使用ID:先定义一个CString类型的变量m_str,然后调用GetDlgItem(编辑框ID)->GetWindowText(str),这样就可以轻松获取编辑框的内容。使用控件变量:我们就必须为编辑框绑定一个CEdit类型的控件变量(这里假设变量...
  • UpdateData 用法 m_num3=m_num1+m_num2; UpdateData(FALSE); /* CWnd::UpdateData BOOL UpdateData( BOOL bSaveAndValidate = TRUE ); Return Value Nonzero if the operation is ...
  • 使用场景:在QTreeWidget或者QTableWidget中编辑完成一个item之后需要立即响应处理,也就是在item编辑之后,失去焦点之后完成处理,需要获取编辑框的失去焦点事件。 #pragma once #include <QLineEdit> #...
  • edit.getText().toString();edit.addTextChangedListener(new TextWatcher() {..}都没有获取编辑框的值,求解
  • MFC如何获取编辑框中输入的内容

    千次阅读 2013-11-05 15:04:00
    2、先用 GetDlgItem(编辑框的ID)获取指向编辑框的指针。再用GetWindowText函数将获取内容保存至指定的字符数组里。 3、使用 GetDlgItemInt来直接获取数值内容。 转载于:...
  • 就是我在MFC中用单文档然后调用单文档,但是我不知道如何获取编辑框的内容。我尝试用了下面的代码但是str没有获得任何值。请问下怎么获取?? ``` CDialog dlg(IDD_DIALOGLOIN); dlg.DoModal(); CString str; ...
  • VC++6.0 MFC中获取编辑框内容

    万次阅读 2018-11-09 21:21:10
    1、方法一:设置编辑框变量 (1)在MFC基本对话框中,创建一个编辑...(2)在MFC基本对话框中,创建一个编辑框控件,为控件添加一个类型为CString变量 m_Edit ,m_Edit 就是编辑框值。 CString str; str...
  • 在MFC的基本对话框中,我建立了一个编辑框控件,变量名为 m_Min ,类型为value int 现在我想获取这个控件中的内容,并存入类型为int的变量temp中,请问怎么样做?可以用GetWindowText吗?为什么我用这个函数的时候,提示我...
  • 编辑框获取内容

    2015-06-16 18:59:06
    第一篇 1、设置编辑框变量在MFC的基本对话框中,我建立了一个编辑框控件,变量名为 m_...其中m_user 是CEidt类的变量,且要声明为对应编辑框的控制变量2、直接获取CString str; GetDlgItem(IDC_EDIT1)->GetWindowText
  • 新建一个文本编辑框,修改其ID为“IDC_EDIT”,为其关联变量,命名为“m_Edit” GetDlgItem(IDC_EDIT)-&gt;GetWindowText(m_Edit);...通过以上代码即可直接将文本编辑框的内容获取到m_Edit中。...
  • 我调用CreateWindow()函数创建一个编辑框,返回句柄我已保存起来了,但是创建标识符号是什么呢? 因为我想要调用下面GetDlgItemInt函数获得文本框里面变量啊! 获取控件里面字符串并转化成int类型 UINT...
  • 暂时解决办法: 在获取值时,改用Server.HtmlDecode(Request.Form["FCK_content"])进行获取就... 因为FCK在提交内容时,会先将编辑框的内容先进行HTML编码,所以获取的时候,需要先进行HTML解码。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,383
精华内容 553
关键字:

获取编辑框的内容