c++ - 我想为每个组合框选择分配整数值并将它们集中打印在文本文件中

标签 c++ visual-c++ mfc user-controls

我正在制作一种学生数据库,其中为每个新学生添加了他/她的详细信息,然后有一个组合框用于选择主题,还有一个相邻的编辑控件用于输入相应的标记。我想在不按任何按钮的情况下同时分配标记。如何实现??

代码-

void CFile03Dlg::OnSelchangeCombo()
{
    // TODO: Add your control notification handler code here


        int n= m_SSubject.GetCurSel();
        arr[n]=m_SMarks;


}




void CFile03Dlg::OnBnClickedButton1()
{
    // TODO: Add your control notification handler code here
    UpdateData(TRUE);
    int h=0;
    CStdioFile file_object(L"D:\\Docs\\Student.txt",CFile::modeCreate | CFile::modeWrite | CFile::modeNoTruncate);


    CString fc1=m_SName, fc2=m_SClass, fc3=m_SRoll, fc4;
    file_object.SeekToEnd();

    for(h=0;h<3;h++)
    {
    fc4.Format(L"%d", arr[h]);
    }

     file_object.WriteString(L"Name: ");
     file_object.WriteString(fc1);
     file_object.WriteString(L"\n");

     file_object.WriteString(L"Class: ");
     file_object.WriteString(fc2);
     file_object.WriteString(L"\n");

     file_object.WriteString(L"Roll No.: ");
     file_object.WriteString(fc3);
     file_object.WriteString(L"\n");

    // file_object.WriteString(L"Name:");
      CString selection;

      for(h=0;h<3;h++)
      {


             if(h==0)
                {
                    m_SSubject.GetLBText(h, selection);
                    file_object.WriteString(selection);
                    file_object.WriteString(L"  Marks: ");
                    file_object.WriteString(fc4);

             }

             else if(h==1)
            {
                    m_SSubject.GetLBText(h, selection);
                file_object.WriteString(selection);

                file_object.WriteString(L"  Marks: ");
                    file_object.WriteString(fc4);
            }

             else if(h==2)
            {
                    m_SSubject.GetLBText(h, selection);
                file_object.WriteString(selection);

                file_object.WriteString(L"  Marks: ");
                    file_object.WriteString(fc4);
            }
             else if(h==3)
            {
                    m_SSubject.GetLBText(h, selection);
                file_object.WriteString(selection);

                file_object.WriteString(L"  Marks: ");
                    file_object.WriteString(fc4);
            }

            file_object.WriteString(L"\n");

      }  
    file_object.WriteString(L"\n");
    UpdateData(FALSE);

}

最佳答案

在每个if else-if条件是您正在编写相同的 4 行代码。

我想你需要这样的东西:

for(h=0;h<3;h++)
{
    if(h==0)
    {

         m_SSubject.GetLBText(h, selection);
         file_object.WriteString(selection);
         file_object.WriteString(L"  Marks: ");
         fc4.Format(L"%d", arr[h]);  // here you will get marks.
         file_object.WriteString(fc4);// here you can pass fc4
    }
    else if()
    {
        // write condition similar...
    }

}

当你运行从 0 到 <3 的循环时,循环将运行 0,1 和 2。所以你为什么要写条件

 else if(h==3) ???

组合框中有多少个值?如果它是 4,那么从 0 运行你的 for 循环至 <=3

关于c++ - 我想为每个组合框选择分配整数值并将它们集中打印在文本文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35401753/

相关文章:

c++ - 重定 DLL(或提供适当的默认加载地址)值得麻烦吗?

linux - 如何在使用 Windows header 的 Linux 上构建 Visual C++ 应用程序?

windows - 稍后更改组合框的项目高度(以了解DPI)

c++ - MFC: wide char-based CMap 使程序崩溃

c++ - 我正在比较两个具有相同值的变量,但它说它们不同

c++ - 使用 G++ 动态编译 C++ 代码片段

c++ - 通过组合或自由函数扩展 STL 容器?

c++ - 如何更改进度条颜色?

c++ - 使用运行时 DLL 加载时,C++ 编译器/链接器会做什么?

c++ - 在 MFC/Visual C++ 中覆盖 OnCancel 按钮