如何从双链接列表中的编辑控件中插入项目

时间:2015-10-27 12:52:32

标签: c++ mfc mdi

我需要从双链表中的编辑控件插入一些数据。 我该怎么做?编辑控件的数据类型为public static boolean canReadFile(Path path) { return Files.exists(path) && Files.isRegularFile(path) && Files.isReadable(path); } ,所有内容的名称均为CString,例如m_...,依此类推......

我的结构如下所示:

m_anrede

1 个答案:

答案 0 :(得分:0)

我会改变你的数据结构,使它更像C ++:

#pragma once

class CAddress
{
public:
    CString anrede;
    CString vorname;
    CString nachname;
    CString plz;
    CString ort;
    CString strasse;
    CString land;
    CString festnetz;
    CString mobil;
    CString mail;
    CString geburtsdatum;
    CString kategorie;
    CString startnummer;
    CString startzeit;
    CString zeit;
    CString rang;
    CString fahrrad;
    CString sponsor;
};

我使用MFC标准CList<CAddress>或更好的C ++标准容器(集合类)而不是本土链表:std::list<CAddress>

因此,在您的应用程序窗口头文件中,您将列表定义为类成员,如下所示:

CList<CAddress> m_AddrList;

您需要某种方法来获取用户输入并填写数据结构:

void CAddressEditorDlg::FillInAddr(CAddress& addr)
{
    m_anredeEditBox.GetWindowText(addr.anrede);
    m_vornameEditBox.GetWindowText(addr.vorname);
    m_nachnameEditBox.GetWindowText(addr.nachname);
    m_plzEditBox.GetWindowText(addr.plz);
    ...
}

之后,您只需将用户配置的地址添加到列表中即可:

void CAddressEditorDlg::OnAddAddrButton()
{
    CAddress currentAddr;
    FillInAddr(currentAddr);
    // add new addr to linked list
    m_AddrList.AddTail(currentAddr);
}

重要:如果我是你,我会深入研究CList源代码,看看它是如何实现的,仅用于教育目的。