📄 poomlist.cpp
字号:
#include "StdAfx.h"
#include "PoomList.h"
CPoomList::CPoomList(void)
{
m_pDataFirst=m_pDataSelected=m_pDataLast=m_pCurrentData=NULL;
m_dwDataCount = 0;
}
CPoomList::~CPoomList(void)
{
while(m_pDataFirst)
{
m_pCurrentData = m_pDataFirst;
m_pDataFirst = m_pDataFirst->pNext;
if(m_pCurrentData->pAppointment)
free(m_pCurrentData->pAppointment);
if(m_pCurrentData->pTask)
free(m_pCurrentData->pTask);
free(m_pCurrentData);
}
m_pDataFirst=m_pDataSelected=m_pDataLast=m_pCurrentData=NULL;
m_dwDataCount = 0;
}
BOOL CPoomList::AddDataToList(POOMDATA *pData)
{
if(m_pDataFirst)
{
while(m_pCurrentData->pNext)
{
m_pCurrentData = m_pCurrentData->pNext;
}
m_pCurrentData->pNext = pData;
pData->pPrev = m_pCurrentData;
pData->pNext = NULL;
m_pDataLast = pData;
}
else
{
pData->pNext=pData->pPrev=NULL;
m_pDataFirst=m_pDataLast=m_pCurrentData=pData;
}
m_dwDataCount++;
return TRUE;
}
BOOL CPoomList::RemoveDataFromList(DWORD dwID)
{
POOMDATA *pTemp = m_pDataFirst;
while(pTemp)
{
if(pTemp->dwPoomId == dwID)
{
m_pDataSelected = pTemp;
break;
}
pTemp = pTemp->pNext;
}
if(m_pDataSelected)
{
if(m_pDataSelected->pPrev)
{
if(m_pDataSelected->pNext)
{
//remove middle node :data<-removedata->data
m_pDataSelected->pPrev->pNext = m_pDataSelected->pNext;
m_pDataSelected->pNext->pPrev = m_pDataSelected->pPrev;
}
else
{
//remove tail node : data<-removedata
m_pDataSelected->pPrev->pNext=NULL;
m_pDataLast = m_pDataSelected->pPrev;
}
}
else
{
if(m_pDataSelected->pNext)
{
//remove head node:removedata->data;
m_pDataSelected->pNext->pPrev = NULL;
m_pDataFirst = m_pDataSelected->pNext;
}
else
{
//remove only one node:removedata
free(m_pDataSelected);
m_dwDataCount--;
m_pDataFirst=m_pDataSelected=m_pDataLast=m_pCurrentData=NULL;
return TRUE;
}
}
//free buffer
free(m_pDataSelected);
m_dwDataCount--;
m_pDataFirst=m_pDataSelected=m_pDataLast=m_pCurrentData=NULL;
}
return TRUE;
}
BOOL CPoomList::UpdateDataToList(DWORD dwID)
{
return TRUE;
}
BOOL CPoomList::DataExistIn(POOMDATA *pData)
{
POOMDATA *pTemp = m_pDataFirst;
while(pTemp)
{
if(pTemp->dwPoomId==pData->dwPoomId)
return TRUE;
pTemp = pTemp->pNext;
}
return FALSE;
}
BOOL CPoomList::DataExistIn(LPCTSTR lpszText)
{
return FALSE;
}
POOMDATA* CPoomList::GetIndexData(int iPos)
{
int i=0;
POOMDATA *pTemp = m_pDataFirst;
while(pTemp)
{
if(i==iPos)
break;
pTemp = pTemp->pNext;
i++;
}
if(pTemp)
return pTemp;
return NULL;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -