【问题标题】:AddString in List Box (MFC)在列表框中添加字符串 (MFC)
【发布时间】:2017-05-23 00:50:46
【问题描述】:

我是一个编写 MFC 代码的新手,我在将字符串添加到列表框时遇到了问题。当我直接调用 AddString 对象时,显示的代码可以正常工作,但当我将其添加到我自己的 Test 对象时,如图所示。我该怎么做才能使 AddString 仍然可以在另一个对象内部工作?也许是某种继承问题?

感谢您耐心解答这个新手问题! 邓肯

void CFileProcessorDlg::Test()
{
    m_strFullName1.Format(_T("Starting to process files"));
    m_Message1.AddString(m_strFullName1); // Add string to list box
}

void CFileProcessorDlg::OnClickedButtonStart()
{
    //Duncan's Stuff
    // TODO: Add your control notification handler code here
    CFileProcessorDlg dlg;

    UpdateData(); // Transfer data from controls to variables

    //dlg.ProcessFiles(m_InputFile, m_OutputFile); // Actually process the files here

    // Problem 5/22/2017 - this works here, but not if I move it into the Test object.
    //m_strFullName1.Format(_T("Starting to process files"));
    //m_Message1.AddString(m_strFullName1); // Add string to list box
    dlg.Test();
}

【问题讨论】:

    标签: c++ mfc


    【解决方案1】:

    术语优先:你称之为“我自己的测试对象”的实体实际上是一个方法

    顺便说一句,您正在从您的 CFileProcessorDlg::OnCickedButtonStart() 方法中实例化一个(另一个)CFileProcessorDlg 对象(名为 dlg)。

    那个dlg对象被创建了,你调用它的Test()方法,然后对象在CFileProcessorDlg::OnCickedButtonStart()的末尾超出范围,所以它对调用对象的对象(@ 987654327@).

    我想你想做这样的事情:

    void CFileProcessorDlg::OnClickedButtonStart()
    {
        //Duncan's Stuff
        // TODO: Add your control notification handler code here
    
        UpdateData(); // Transfer data from controls to variables
    
        //dlg.ProcessFiles(m_InputFile, m_OutputFile); // Actually process the files here
    
        // Problem 5/22/2017 - this works here, but not if I move it into the Test object.
        //m_strFullName1.Format(_T("Starting to process files"));
        //m_Message1.AddString(m_strFullName1); // Add string to list box
        Test(); // more explicitly: this->Test()
    }
    

    我将您的 cmets 留作上下文,但最终的改变是不实例化新的 CFileProcessorDlg 对象。

    【讨论】:

    • 效果很好,非常感谢。我也学会了什么是方法!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多