[英]How Do I Insert Items From An Edit Control In A Double Linked List
我需要在双链表中插入来自编辑控件的一些数据。 我该怎么做? 编辑控件的数据类型为CString
并且所有名称都类似于m_...
,例如m_anrede
等。
我的结构看起来像这样:
typedef struct adr{
char anrede [5];
char vorname [51];
char nachname [51];
char plz [8];
char ort [60];
char strasse [51];
char land [24];
char festnetz [14];
char mobil [14];
char mail [101];
char geburtsdatum [11];
char kategorie [31];
char startnummer [5];
char startzeit [9];
char zeit [9];
char rang [5];
char fahrrad [31];
char sponsor [31];
} adressen;
struct node{
adressen *konto;
struct node *prev;
struct node *next;
};
我将更改您的数据结构以使其更像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
源代码,以了解如何仅出于教育目的而实现该代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.