如何从双重链接列表中的编辑控件中插入项目 [英] How Do I Insert Items From An Edit Control In A Double Linked List
问题描述
我需要在双链表中插入来自编辑控件的一些数据。
我如何做到这一点?编辑控件的数据类型为 CString
,并且命名为 m _...
例如 m_anrede
等等...
I need to insert some data from an edit control in a double linked list.
How can i make this? The datatype of the edit control is CString
and all are named like m_...
for example m_anrede
and so on...
我的结构看起来像这样: b
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 ++相似:
I'd change your data structure to make it more C++ alike:
#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>
。
Instead of home-grown linked list I'd use MFC-standard CList<CAddress>
or even better C++ standard container (collection class): std::list<CAddress>
.
在你的应用程序窗口头文件中,你的列表定义为类成员,如下所示:
So in your app window header file you'll have your list defined as class member like this:
CList<CAddress> m_AddrList;
您将需要某种方法来获取用户输入并填充您的数据结构:
You would need some sort of method to get user input and fill in your data structure:
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);
...
}
之后,您可以简单地添加用户配置地址列表:
After that you can simply add user-configured address to your list:
void CAddressEditorDlg::OnAddAddrButton()
{
CAddress currentAddr;
FillInAddr(currentAddr);
// add new addr to linked list
m_AddrList.AddTail(currentAddr);
}
重要:如果我是你挖掘 CList
源代码,看看它是如何实现的仅用于教育目的。
IMPORTANT: If I were you I'd dig into CList
source code to see how it's implemented just for educational purposes.
这篇关于如何从双重链接列表中的编辑控件中插入项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!