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

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);





//**************************************************************************************************
经验证,用以下方法最最实在:

CString str;
GetDlgItemText(IDC_EDIT,str);
MessageBox(str);
在MFC(Microsoft Foundation Classes)中,编辑框(CEdit)的文字颜色可以通过修改控件的样式或者使用消息处理函数来改变。具体来说,有以下几种方式可以实现: 1. 使用`SetTextColor`函数:这个函数用于设置控件中文字的颜色。它接受一个`COLORREF`类型的参数,该参数定义了所需的颜色。例如,如果你想要设置编辑框的文字颜色为红色,可以这样调用函数: ```cpp m_EditControl.SetTextColor(RGB(255, 0, 0)); ``` 其中`m_EditControl`是编辑框控件的成员变量。 2. 消息处理:通过处理`WM_CTLCOLOREDIT`消息,可以在编辑框接收到消息时自定义文字和背景颜色。这个消息在编辑框即将绘制文字时发送给父窗口,父窗口可以返回一个画刷(HBRUSH)来设置背景色,或者直接调用`SetTextColor`设置文字颜色。以下是一个处理该消息的示例代码: ```cpp HBRUSH CYourDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if (nCtlColor == CTLCOLOR_EDIT) { pDC->SetTextColor(RGB(0, 0, 255)); // 设置文字颜色为蓝色 pDC->SetBkColor(RGB(255, 255, 255)); // 设置背景颜色为白色 return (HBRUSH)GetStockObject(NULL_BRUSH); } return hbr; } ``` 在上面的示例中,`CTLCOLOR_EDIT`是处理编辑框控件的消息,`pDC`是设备上下文指针,用于绘制,`pWnd`是接收消息的编辑框控件指针。 3. 使用`CEdit::SetBkColor`和`CEdit::SetTextColor`:这两个成员函数分别用于设置编辑框的背景色和文字色。这需要在你的`CEdit`派生类中使用,或者通过获取编辑框控件的指针来调用。 ```cpp m_EditControl.SetBkColor(RGB(255, 255, 255)); // 设置背景颜色为白色 m_EditControl.SetTextColor(RGB(0, 255, 0)); // 设置文字颜色为绿色 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值