64,654
社区成员
发帖
与我相关
我的任务
分享
struct ListContent
{
int item_id;
char item_time[40];
char item_content[1024];
bool item_ifwrite;
};
这是我定义的结构体list<ListContent*> ToFile_t;
这是我定义的list
class CFindList
{
public:
CFindList(CString p):m_str(p){};
bool operator ()(const ListContent &t)const
{
return t.item_content .c_str().Find(m_str);
}
private:
CString m_str;
};
但始终成不了struct CNodeFind
{
public:
CNodeFind(CString p):m_str(p){};
bool operator ()(const ListContent *t)
{
CString str = t->item_content;
if (str.Find(m_str)!=-1)
{
return TRUE;
}
return FALSE;
}
private:
CString m_str;
};
void CData::SearchList(char *psearch)
{
if(!strcmp(psearch,"\0"))//判断是否输入搜索值
{
AfxMessageBox(_T("请输入搜索关键词!"));
return;
}
extern CListBox *glistbox;//获取listbox
glistbox->ResetContent();
CString str;
str=psearch;
m_it =find_if(m_ToFile.begin(), m_ToFile.end(), CNodeFind(str));
if (m_it==m_ToFile.end())
{
AfxMessageBox(_T("未搜索到此关键词!"));
}
else
{
glistbox->AddString((*m_it)->item_content);
}
}
我这样写了还是不行