Edit Control MFC vc++
-
I'm trying to make something like this. In the edit control when I input some number other than the default number immediately some warning will be displayed. e.g. there are 3 bottle which have the capacity of 1L, 2L & 3L resp. When I type 2 for the 1st bottle immediately I want to display warning message below. I need some guidance to achieve this. Thank you. P.s. I would be very grateful if some example is given. :)
-
As Victor said, the simple way to achieve this task is to use CEdit Class | Microsoft Docs | ShowBalloonTip[^]
in .h file :
afx_msg void MyDlg::OnEnChangeEdit();
in .cpp file :
BEGIN_MESSAGE_MAP(MyDlg, CDialogEx)
ON_EN_CHANGE(IDC_EDIT2, &MedicationDlg::OnEnChangeEdit)
END_MESSAGE_MAP()void MyDlg :: OnEnchangeEdit()
{
CString temp;
//could you give some some direction on how to get the text entered in the edit control
// Should I use the control value variable of the edit control to save the input
// I am confused here, I would like some direction. Thanks
updateData(TRUE);
temp = m_editvariable;Function(1st parameter, temp) // this function will check the text entered in the edit control, with the default value and display appropriate message
}Thanks.
-
in .h file :
afx_msg void MyDlg::OnEnChangeEdit();
in .cpp file :
BEGIN_MESSAGE_MAP(MyDlg, CDialogEx)
ON_EN_CHANGE(IDC_EDIT2, &MedicationDlg::OnEnChangeEdit)
END_MESSAGE_MAP()void MyDlg :: OnEnchangeEdit()
{
CString temp;
//could you give some some direction on how to get the text entered in the edit control
// Should I use the control value variable of the edit control to save the input
// I am confused here, I would like some direction. Thanks
updateData(TRUE);
temp = m_editvariable;Function(1st parameter, temp) // this function will check the text entered in the edit control, with the default value and display appropriate message
}Thanks.
-
I have edited like the below code. Only the first character I type shows in message box. What I wanted was the whole thing i type in the edit control. eg. when I try to enter 300, the moment i type 3 message pop up with 3.
void MyDlg::OnEnChangeEdit()
{
CString temp;
m_Edit.GetWindowTextW(temp); // CEdit m_Edit;
MessageBox(temp);Function(1st parameter, temp);
}
-
I have edited like the below code. Only the first character I type shows in message box. What I wanted was the whole thing i type in the edit control. eg. when I try to enter 300, the moment i type 3 message pop up with 3.
void MyDlg::OnEnChangeEdit()
{
CString temp;
m_Edit.GetWindowTextW(temp); // CEdit m_Edit;
MessageBox(temp);Function(1st parameter, temp);
}
-
You can associate a CString value with your edit control, and there you will have entire edit value. VS wizzard allow you to do that.
Could you give an example. Thanks
-
Could you give an example. Thanks
In header:
public:
//{{AFX_DATA(MyDlg)
enum { IDD = IDD_TEST_FORM };
CEdit m_Edit1;
CString m_sEdit1;
//}}AFX_DATAin cpp:
void MyDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(MyDlg)
DDX_Control(pDX, IDC_EDIT1, m_Edit1);
DDX_Text(pDX, IDC_EDIT1, m_sEdit1);
//}}AFX_DATA_MAP
}so you have the value of edit control inside of m_sEdit1. Example:
void MyDlg::OnEnchangeEdit()
{
updateData(FALSE);
Function(1st parameter, m_sEdit1);
} -
In header:
public:
//{{AFX_DATA(MyDlg)
enum { IDD = IDD_TEST_FORM };
CEdit m_Edit1;
CString m_sEdit1;
//}}AFX_DATAin cpp:
void MyDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(MyDlg)
DDX_Control(pDX, IDC_EDIT1, m_Edit1);
DDX_Text(pDX, IDC_EDIT1, m_sEdit1);
//}}AFX_DATA_MAP
}so you have the value of edit control inside of m_sEdit1. Example:
void MyDlg::OnEnchangeEdit()
{
updateData(FALSE);
Function(1st parameter, m_sEdit1);
}Thank you . The example really really helps. :)
-
I have edited like the below code. Only the first character I type shows in message box. What I wanted was the whole thing i type in the edit control. eg. when I try to enter 300, the moment i type 3 message pop up with 3.
void MyDlg::OnEnChangeEdit()
{
CString temp;
m_Edit.GetWindowTextW(temp); // CEdit m_Edit;
MessageBox(temp);Function(1st parameter, temp);
}
Member 14575556 wrote:
m_Edit.GetWindowTextW(temp);
Why not just use
GetWindowText()
?"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
-
Member 14575556 wrote:
m_Edit.GetWindowTextW(temp);
Why not just use
GetWindowText()
?"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
It was a typo. I've changed it. Thanks :)
-
I'm trying to make something like this. In the edit control when I input some number other than the default number immediately some warning will be displayed. e.g. there are 3 bottle which have the capacity of 1L, 2L & 3L resp. When I type 2 for the 1st bottle immediately I want to display warning message below. I need some guidance to achieve this. Thank you. P.s. I would be very grateful if some example is given. :)
Use 3 radio buttons; default select the first option (1L). Or leave it "empty" (tri-state) and warn if no selection made. Standard stuff that everyone recognizes.
The Master said, 'Am I indeed possessed of knowledge? I am not knowing. But if a mean person, who appears quite empty-like, ask anything of me, I set it forth from one end to the other, and exhaust it.' ― Confucian Analects