24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 995  |  回复: 5

wyq0901

超级版主

优秀!!有木有!!!优秀!!有木有!!!优秀!!有木有!!!优秀!!有木有!!!


[交流] 【求助】CListCtrl列表框中数据保存,读取问题?(楼主取消)

基于对话框建立的工程,里面包含多个对话框。
在其中一个对话框上添加CListCtrl列表框,列表框有5列,内容通过CEdit框输入获得;
添加多行数据后,要保存添加的这些数据(不是保存到硬盘上);以便后面使用这些数据。
在另一个对话框中添加下拉控件,里面的内容是上面列表框中的第2列,相当于动态添加的。
问:如何保存和读取这样的数据?

有一个想法:定义一个结构体,把数据都存放在结构体里面,下拉控件到这个结构体里面找所需要的列数据。
不知道是否可以,主要是不会编程,希望给出具体代码。

[ Last edited by ben_ladeng on 2011-3-25 at 14:14 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wyq0901

超级版主

优秀!!有木有!!!优秀!!有木有!!!优秀!!有木有!!!优秀!!有木有!!!


我写一下,帮我找找错误吧!
基于Dialog建立工程:
包括三个对话框:IDD_DIALOG_MAIN,IDD_DIALOG_PRODUCT,IDD_DIALOG_METHOD
它们分别对应三个对话框类:CMainDlg,CProductDlg和CMethodDlg
在IDD_DIALOG_MAIN中添加两个按钮,分别调用另外两个对话框;
在IDD_DIALOG_PRODUCT中添加5个CEdit Box,用于输入数据,添加Add按钮,CListCtrl列表框用于显示,再添加一个Save按钮。
在IDD_DIALOG_METHOD中添加Combo Box,用于获得列表中的某一列。
CEdit Box向CListCtrl列表框中添加数据已经实现,这里忽略。主要研究怎么保存CListCtrl列表框中的数据,在其他对话框能继续使用。

首先,在mainDlg.h中定义一个结构体如下:
public:
typedef struct PartDefinition
{
CString PartID;
CString PartName;
CString GivenName;
CString AF;
CString Type;
}ProductInfo;
ProductInfo *productinfo;

在ProductDlg.cpp中包含头文件mainDlg.h,并双击Save按钮,添加如下代码:

void CProductDlg::OnButtonSave()  
{
// TODO: Add your control notification handler code here

int nItemCount=m_listDisp.GetItemCount();//表项总数   
for(int i=0;i {
//按行读取数据
CMainDlg *pMDlg=(CMainDlg *)AfxGetMainWnd();
pMDlg->productinfo->PartID = m_listDisp.GetItemText(i,0);
pMDlg->productinfo->PartName = m_listDisp.GetItemText(i,1);
pMDlg->productinfo->GivenName = m_listDisp.GetItemText(i,2);
pMDlg->productinfo->AF = m_listDisp.GetItemText(i,3);
pMDlg->productinfo->Type = m_listDisp.GetItemText(i,4);
}
这样,关闭IDD_DIALOG_PRODUCT对话框后,数据保存到结构体中了吗?编译没有问题,运行有问题!!!

再到IDD_DIALOG_METHOD中,在MethodDlg.cpp中包含头文件mainDlg.h,双击Combo Box控件,添加如下代码:
void CMethodDlg::OnEditchangeComboPartselection1()  
{
// TODO: Add your control notification handler code here
CMainDlg *pMDlg=(CMainDlg *)AfxGetMainWnd();
((CComboBox *)GetDlgItem(IDC_COMBO_PARTSELECTION1))->InsertString =  
pMDlg->productinfo->GivenName;
}
这样能使下拉列表中添加GivenName,也就是CListCtrl列表框中第三列的值吗???
2楼2011-03-09 14:49:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

claudebell

超级版主

优秀!!有木有!!!优秀!!有木有!!!优秀!!有木有!!!优秀!!有木有!!!


wyq0901(金币+5): 感谢回复,劳驾进一步解释一下,现在问题就是编译没问题,运行一点击save按钮就弹出警告的对话框,不能继续下去,打开的对话框全都强制关闭了。 2011-03-18 14:42:45
这个...没有插入代码看的好眼晕...
大致看了一下,思路貌似没错。
只要保证productinfo是个全局变量就可以,这样ProductDlg对productinfo修改后,其中的值会发生变化,ProductDlg关闭后,productinfo的值也不会销毁,其他对话框依然可以调用。
至于为什么运行出问题,楼主可以单步跟踪一下。
3楼2011-03-11 11:59:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wyq0901

管理员

优秀!!有木有!!!优秀!!有木有!!!优秀!!有木有!!!优秀!!有木有!!!


有没有人再给点意见啊?调不出来了
4楼2011-03-16 21:13:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wyq0901

兑换贵宾

优秀!!有木有!!!优秀!!有木有!!!优秀!!有木有!!!优秀!!有木有!!!


引用回帖:
Originally posted by claudebell at 2011-03-11 11:59:32:
这个...没有插入代码看的好眼晕...
大致看了一下,思路貌似没错。
只要保证productinfo是个全局变量就可以,这样ProductDlg对productinfo修改后,其中的值会发生变化,ProductDlg关闭后,productinfo的值也不会 ...

像我这样在mainDlg.h中定义的productinfo属于全局变量了?如下:
mainDlg.h中定义一个结构体如下:
public:
typedef struct PartDefinition
{
CString PartID;
CString PartName;
CString GivenName;
CString AF;
CString Type;
}ProductInfo;
ProductInfo *productinfo;
我有点糊涂,因为是根据对话框建立的工程,所以怎么样判断哪个是主对话框,这个productinfo一定要做主对话框中定义成全局变量吗?
5楼2011-03-18 14:40:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wyq0901

超级版主

优秀!!有木有!!!优秀!!有木有!!!优秀!!有木有!!!优秀!!有木有!!!


找到原因了,没有给指针分配储存空间,非法调用了
问题解决,此贴可结。
6楼2011-03-25 14:03:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wyq0901 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 材料调剂 +8 一样YWY 2026-03-31 8/400 2026-04-01 09:02 by oooqiao
[考研] 362求调剂 +10 西南交材料专硕3 2026-03-31 10/500 2026-04-01 08:29 by JourneyLucky
[考研] 土木304求调剂 +5 顶级擦擦 2026-03-31 5/250 2026-04-01 08:15 by fdcxdystjk¥
[考研] 271求调剂 +10 勒布朗@ 2026-03-31 12/600 2026-04-01 07:25 by sunshine0013
[考研] 086000生物与医药298调剂求助 +3 元元青青 2026-03-31 5/250 2026-03-31 19:58 by vgtyfty
[考研] 070300一志愿211,312分求调剂院校 +12 小黄鸭宝 2026-03-30 12/600 2026-03-31 17:53 by 544594351
[考研] 08工科,295,接受跨专业调剂 +4 lmnlzy 2026-03-31 4/200 2026-03-31 15:25 by 西京学院招办
[考研] 367求调剂 +7 芋泥啵啵… 2026-03-28 7/350 2026-03-31 14:55 by 不吃魚的貓
[考研] 一志愿郑大材料工程290求调剂 +12 Youth_ 2026-03-30 12/600 2026-03-31 03:34 by 蒙奇奇521
[考研] 303求调剂 +7 DLkz1314. 2026-03-30 7/350 2026-03-30 21:07 by peike
[考研] 322求调剂 +10 宋明欣 2026-03-27 10/500 2026-03-30 18:47 by 544594351
[考研] 求调剂 +10 家佳佳佳佳佳 2026-03-29 10/500 2026-03-30 18:34 by 544594351
[考研] 085600,材料与化工321分求调剂 +10 大馋小子 2026-03-28 10/500 2026-03-29 23:35 by 飞行日记西
[考研] 数一英一271专硕(085401)求调剂,可跨 +7 前行必有光 2026-03-28 8/400 2026-03-28 23:22 by 小木虫tim
[考研] 11408软件工程求调剂 +3 Qiu学ing 2026-03-28 3/150 2026-03-28 21:50 by zhq0425
[考研] 315分求调剂 +7 26考研上岸版26 2026-03-26 7/350 2026-03-28 04:05 by fmesaito
[考研] 295求调剂 +5 1428151015 2026-03-27 6/300 2026-03-28 04:04 by fmesaito
[考研] 285求调剂 +4 AZMK 2026-03-27 7/350 2026-03-27 20:59 by AZMK
[考研] 中国科学院深圳先进技术研究院-光纤传感课题组招生-中国科学院大学、深圳理工大学联培 +5 YangTyu1 2026-03-26 5/250 2026-03-26 18:27 by 猫咪猫咪呀
[考研] 打过很多竞赛,085406控制工程300分,求调剂 +3 askeladz 2026-03-26 3/150 2026-03-26 09:08 by 给你你注意休息
信息提示
请填处理意见