Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. Edit Control MFC vc++

Edit Control MFC vc++

Scheduled Pinned Locked Moved C / C++ / MFC
c++tutorial
13 Posts 4 Posters 1 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Member_14575556

    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. :)

    _ Offline
    _ Offline
    _Flaviu
    wrote on last edited by
    #3

    As Victor said, the simple way to achieve this task is to use CEdit Class | Microsoft Docs | ShowBalloonTip[^]

    M 1 Reply Last reply
    0
    • _ _Flaviu

      As Victor said, the simple way to achieve this task is to use CEdit Class | Microsoft Docs | ShowBalloonTip[^]

      M Offline
      M Offline
      Member_14575556
      wrote on last edited by
      #4

      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.

      _ 1 Reply Last reply
      0
      • M Member_14575556

        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.

        _ Offline
        _ Offline
        _Flaviu
        wrote on last edited by
        #5

        What kind of object is m_editvariable ?

        M 1 Reply Last reply
        0
        • _ _Flaviu

          What kind of object is m_editvariable ?

          M Offline
          M Offline
          Member_14575556
          wrote on last edited by
          #6

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

          }

          _ D 2 Replies Last reply
          0
          • M Member_14575556

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

            }

            _ Offline
            _ Offline
            _Flaviu
            wrote on last edited by
            #7

            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.

            M 1 Reply Last reply
            0
            • _ _Flaviu

              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.

              M Offline
              M Offline
              Member_14575556
              wrote on last edited by
              #8

              Could you give an example. Thanks

              _ 1 Reply Last reply
              0
              • M Member_14575556

                Could you give an example. Thanks

                _ Offline
                _ Offline
                _Flaviu
                wrote on last edited by
                #9

                In header:

                public:
                //{{AFX_DATA(MyDlg)
                enum { IDD = IDD_TEST_FORM };
                CEdit m_Edit1;
                CString m_sEdit1;
                //}}AFX_DATA

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

                M 1 Reply Last reply
                0
                • _ _Flaviu

                  In header:

                  public:
                  //{{AFX_DATA(MyDlg)
                  enum { IDD = IDD_TEST_FORM };
                  CEdit m_Edit1;
                  CString m_sEdit1;
                  //}}AFX_DATA

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

                  M Offline
                  M Offline
                  Member_14575556
                  wrote on last edited by
                  #10

                  Thank you . The example really really helps. :)

                  1 Reply Last reply
                  0
                  • M Member_14575556

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

                    }

                    D Offline
                    D Offline
                    David Crow
                    wrote on last edited by
                    #11

                    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

                    M 1 Reply Last reply
                    0
                    • D David Crow

                      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

                      M Offline
                      M Offline
                      Member_14575556
                      wrote on last edited by
                      #12

                      It was a typo. I've changed it. Thanks :)

                      1 Reply Last reply
                      0
                      • M Member_14575556

                        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. :)

                        L Offline
                        L Offline
                        Lost User
                        wrote on last edited by
                        #13

                        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

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • World
                        • Users
                        • Groups