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. Clearing the edit box in ccombobox

Clearing the edit box in ccombobox

Scheduled Pinned Locked Moved C / C++ / MFC
questionlearning
38 Posts 3 Posters 0 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.
  • D David Crow

    lctrncs wrote:

    In drop list mode my OnSelchangeCombo function...

    What does this method look like?


    "Approved Workmen Are Not Ashamed" - 2 Timothy 2:15

    "Judge not by the eye but by the heart." - Native American Proverb

    L Offline
    L Offline
    lctrncs
    wrote on last edited by
    #29

    What does my OnSelChangeCombo function look like? It is rather simple: 1. Pointer to the Combobox with assert if NULL, 2. code to return index of selected item in listbox from control directed alpha listing (thank you Chris Losinger!), 3. dirtyflag check of record and associated commit if true, 4. call of the GotoRecord function.

    "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." Richard Feynman, Minority Report to the Official Report on the Space Shuttle Challenger Crash

    D 1 Reply Last reply
    0
    • L lctrncs

      What does my OnSelChangeCombo function look like? It is rather simple: 1. Pointer to the Combobox with assert if NULL, 2. code to return index of selected item in listbox from control directed alpha listing (thank you Chris Losinger!), 3. dirtyflag check of record and associated commit if true, 4. call of the GotoRecord function.

      "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." Richard Feynman, Minority Report to the Official Report on the Space Shuttle Challenger Crash

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

      Ok, what I have here may help, or it may not since it is not entirely like what you have. I have a CRecordset-derived class that reads from the Employees table of the Northwind database. I have a dialog with a combobox (having the CBS_DROPDOWNLIST style) and listbox. Selecting an item from the combobox will add it to the listbox. The selection in the combobox is then cleared.

      BOOL CMyDlg::OnInitDialog()
      {
      CDialog::OnInitDialog();

      CDatabase db;
      CSet rs(&db);
      
      rs.Open();
      while (! rs.IsEOF())
      {
          m\_combo.AddString(rs.m\_LastName);
          rs.MoveNext();
      }
      
      rs.Close();
      
      m\_combo.InsertString(0, "");
       
      return TRUE;  // return TRUE  unless you set the focus to a control
      

      }

      void CMyDlg::OnSelchangeCombo1()
      {
      int nIndex = m_combo.GetCurSel();
      CString strItem;
      m_combo.GetLBText(nIndex, strItem);
      m_list.AddString(strItem);

      m\_combo.SetCurSel(0);
      

      }

      Is this close?


      "Approved Workmen Are Not Ashamed" - 2 Timothy 2:15

      "Judge not by the eye but by the heart." - Native American Proverb

      L 1 Reply Last reply
      0
      • D David Crow

        lctrncs wrote:

        ...this is where I have instantiated m_wndComboBox...

        m_wndComboBox should be a member variable, not local to some function.


        "Approved Workmen Are Not Ashamed" - 2 Timothy 2:15

        "Judge not by the eye but by the heart." - Native American Proverb

        L Offline
        L Offline
        lctrncs
        wrote on last edited by
        #31

        As I said, I have never tried to instantiate a class instance so that I can use the dot operator. I tried to instantiate it in a number of locations (mainframe.cpp main.c etc.) without success. So where should I instantiate my m_wndCombobox so that I can use the dot operator as you suggest m_combo.InsertStinrg(0,"") ? Why should the dot operator work when a pointer does not?

        "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." Richard Feynman, Minority Report to the Official Report on the Space Shuttle Challenger Crash

        D 1 Reply Last reply
        0
        • L lctrncs

          As I said, I have never tried to instantiate a class instance so that I can use the dot operator. I tried to instantiate it in a number of locations (mainframe.cpp main.c etc.) without success. So where should I instantiate my m_wndCombobox so that I can use the dot operator as you suggest m_combo.InsertStinrg(0,"") ? Why should the dot operator work when a pointer does not?

          "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." Richard Feynman, Minority Report to the Official Report on the Space Shuttle Challenger Crash

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

          lctrncs wrote:

          So where should I instantiate my m_wndCombobox so that I can use the dot operator as you suggest

          It should belong to the class that owns it (hence the m_ prefix). In my example, m_combo and m_list are both members of CMyDialog.

          lctrncs wrote:

          Why should the dot operator work when a pointer does not?

          Pointer variables use ->, while non-pointer variables use a dot. In reality,

          pointer->member

          is equivalent to:

          (*pointer).member

          See here for more on the member-selection operator.


          "Approved Workmen Are Not Ashamed" - 2 Timothy 2:15

          "Judge not by the eye but by the heart." - Native American Proverb

          L 1 Reply Last reply
          0
          • D David Crow

            lctrncs wrote:

            So where should I instantiate my m_wndCombobox so that I can use the dot operator as you suggest

            It should belong to the class that owns it (hence the m_ prefix). In my example, m_combo and m_list are both members of CMyDialog.

            lctrncs wrote:

            Why should the dot operator work when a pointer does not?

            Pointer variables use ->, while non-pointer variables use a dot. In reality,

            pointer->member

            is equivalent to:

            (*pointer).member

            See here for more on the member-selection operator.


            "Approved Workmen Are Not Ashamed" - 2 Timothy 2:15

            "Judge not by the eye but by the heart." - Native American Proverb

            L Offline
            L Offline
            lctrncs
            wrote on last edited by
            #33

            So I should right click on CDialog, choose Add Member Function and enter Ccombobox and m_combo to instantiate m_combo as a member CDialog?

            "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." Richard Feynman, Minority Report to the Official Report on the Space Shuttle Challenger Crash

            D 1 Reply Last reply
            0
            • L lctrncs

              So I should right click on CDialog, choose Add Member Function and enter Ccombobox and m_combo to instantiate m_combo as a member CDialog?

              "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." Richard Feynman, Minority Report to the Official Report on the Space Shuttle Challenger Crash

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

              lctrncs wrote:

              So I should right click on CDialog, choose Add Member Function and enter Ccombobox and m_combo to instantiate m_combo as a member CDialog?

              No. Use ClassWizard (Ctrl+W) to associate a member variable with a control.


              "Approved Workmen Are Not Ashamed" - 2 Timothy 2:15

              "Judge not by the eye but by the heart." - Native American Proverb

              1 Reply Last reply
              0
              • D David Crow

                Ok, what I have here may help, or it may not since it is not entirely like what you have. I have a CRecordset-derived class that reads from the Employees table of the Northwind database. I have a dialog with a combobox (having the CBS_DROPDOWNLIST style) and listbox. Selecting an item from the combobox will add it to the listbox. The selection in the combobox is then cleared.

                BOOL CMyDlg::OnInitDialog()
                {
                CDialog::OnInitDialog();

                CDatabase db;
                CSet rs(&db);
                
                rs.Open();
                while (! rs.IsEOF())
                {
                    m\_combo.AddString(rs.m\_LastName);
                    rs.MoveNext();
                }
                
                rs.Close();
                
                m\_combo.InsertString(0, "");
                 
                return TRUE;  // return TRUE  unless you set the focus to a control
                

                }

                void CMyDlg::OnSelchangeCombo1()
                {
                int nIndex = m_combo.GetCurSel();
                CString strItem;
                m_combo.GetLBText(nIndex, strItem);
                m_list.AddString(strItem);

                m\_combo.SetCurSel(0);
                

                }

                Is this close?


                "Approved Workmen Are Not Ashamed" - 2 Timothy 2:15

                "Judge not by the eye but by the heart." - Native American Proverb

                L Offline
                L Offline
                lctrncs
                wrote on last edited by
                #35

                Well I got things running like you show here - the Class Wizard info was key - but it still does not clear the edit box in either dropdown or drop list mode - any other suggestions?

                "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." Richard Feynman, Minority Report to the Official Report on the Space Shuttle Challenger Crash

                D 1 Reply Last reply
                0
                • L lctrncs

                  Well I got things running like you show here - the Class Wizard info was key - but it still does not clear the edit box in either dropdown or drop list mode - any other suggestions?

                  "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." Richard Feynman, Minority Report to the Official Report on the Space Shuttle Challenger Crash

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

                  If you can narrow this project down to just the relevant lines, you can e-mail it to me and I'll take a look.


                  "Approved Workmen Are Not Ashamed" - 2 Timothy 2:15

                  "Judge not by the eye but by the heart." - Native American Proverb

                  L 1 Reply Last reply
                  0
                  • D David Crow

                    If you can narrow this project down to just the relevant lines, you can e-mail it to me and I'll take a look.


                    "Approved Workmen Are Not Ashamed" - 2 Timothy 2:15

                    "Judge not by the eye but by the heart." - Native American Proverb

                    L Offline
                    L Offline
                    lctrncs
                    wrote on last edited by
                    #37

                    Thank you. I spent some time with it this weekend and got it working. Thank You! Your assistance was of great service to me! Thank you again!

                    "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." Richard Feynman, Minority Report to the Official Report on the Space Shuttle Challenger Crash

                    D 1 Reply Last reply
                    0
                    • L lctrncs

                      Thank you. I spent some time with it this weekend and got it working. Thank You! Your assistance was of great service to me! Thank you again!

                      "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." Richard Feynman, Minority Report to the Official Report on the Space Shuttle Challenger Crash

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

                      Overall, what did you do to finally get it going?


                      "Approved Workmen Are Not Ashamed" - 2 Timothy 2:15

                      "Judge not by the eye but by the heart." - Native American Proverb

                      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