首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于 MFC 通讯录 数据传递的有关问题

2012-05-23 
关于 MFC 通讯录 数据传递的问题各位大神:我已经建立了主界面,已经实现了添加、删除、修改这些功能,然后主界

关于 MFC 通讯录 数据传递的问题
各位大神:


我已经建立了主界面,已经实现了添加、删除、修改这些功能,然后主界面里有一个 列表 ,里面列出了联系人的信息。


但有一个问题:

我正在做一个查找功能,在主界面中点“查找”按钮,然后弹出一个新的对话框,里面有 按姓名查找 和 按电话号码查找,

基本的思路是 把 变量m_name 和 在编辑框中输入的东西 比对,如果一致就 显示“找到联系人”,并显示该联系人信息。

我是用的一个“addressbook.txt”的文件存储联系人信息。

1.现在主界面的 列表中 联系人的数据,我想在 “查找”对话框(即一个新的对话框)中用,怎么实现??

2.还有一种方式: 就是通过 文件提取 数据, 如果这样,怎么实现?



要求具体代码!!

如有需要,我会把我的整个程序发给你。只要满意,悬赏分好商量。不胜感激!!!!



[解决办法]
很多方法可以实现
1:自定义消息,发送消息回主对话框,让其显示。
2:定义全局变量,主对话框开定时器检测。一旦查找到,发送WM_PAINT回主对话框让其重新刷新显示
[解决办法]
可以定义一个结构体,里面定义你所要的变量:联系人的姓名、电话号码、年龄、性别.....
typedef struct tempData
{
CString name;
CString tel;
Cstring old;
CString sex;
}
定义一个list链表:list<tempData *>l_list;
读取addressbook.txt文件,把取到的每个人的信息赋值给你定义的结构体变量:
tempData *Itemdata = new tempData;
Itemdata.name=....;
Itemdata.tel=....;
Itemdata.old=....;
Itemdata.sex=....;
向list中插入结构体对象:l_list.push_back(ItemData);

在 “查找”对话框中根据编辑框中输入的姓名,利用迭代器到list链表中去查找,找到就显示对应的结构体对象中的信息。


[解决办法]

C/C++ code
你的主界面里面显示了全部联系人的信息吧..跟你主界的联系人信息匹配main *pwnd = (main*)GetParent();int icount = pwnd->m_list.GetItemCount();CString strname;for(int i = 0 ; i < icount ; i++){    strname = pwnd->m_list.GetItemText(i,0);    if(strname == m_searchname)//找到了...} 

热点排行