| 6 | 1/1 | 返回列表 |
| 查看: 979 | 回復(fù): 5 | |||
[交流]
【求助】CListCtrl列表框中數(shù)據(jù)保存,讀取問題?(樓主取消)
|
|
基于對話框建立的工程,里面包含多個對話框。 在其中一個對話框上添加CListCtrl列表框,列表框有5列,內(nèi)容通過CEdit框輸入獲得; 添加多行數(shù)據(jù)后,要保存添加的這些數(shù)據(jù)(不是保存到硬盤上);以便后面使用這些數(shù)據(jù)。 在另一個對話框中添加下拉控件,里面的內(nèi)容是上面列表框中的第2列,相當(dāng)于動態(tài)添加的。 問:如何保存和讀取這樣的數(shù)據(jù)? 有一個想法:定義一個結(jié)構(gòu)體,把數(shù)據(jù)都存放在結(jié)構(gòu)體里面,下拉控件到這個結(jié)構(gòu)體里面找所需要的列數(shù)據(jù)。 不知道是否可以,主要是不會編程,希望給出具體代碼。 [ Last edited by ben_ladeng on 2011-3-25 at 14:14 ] |
» 搶金幣啦!回帖就可以得到:
+1/461
+5/250
+1/84
+1/81
+2/48
+2/36
+1/31
+1/31
+1/29
+1/29
+1/18
+1/16
+1/14
+1/8
+1/7
+1/5
+1/4
+1/4
+1/2
+1/1
|
我寫一下,幫我找找錯誤吧! 基于Dialog建立工程: 包括三個對話框:IDD_DIALOG_MAIN,IDD_DIALOG_PRODUCT,IDD_DIALOG_METHOD 它們分別對應(yīng)三個對話框類:CMainDlg,CProductDlg和CMethodDlg 在IDD_DIALOG_MAIN中添加兩個按鈕,分別調(diào)用另外兩個對話框; 在IDD_DIALOG_PRODUCT中添加5個CEdit Box,用于輸入數(shù)據(jù),添加Add按鈕,CListCtrl列表框用于顯示,再添加一個Save按鈕。 在IDD_DIALOG_METHOD中添加Combo Box,用于獲得列表中的某一列。 CEdit Box向CListCtrl列表框中添加數(shù)據(jù)已經(jīng)實(shí)現(xiàn),這里忽略。主要研究怎么保存CListCtrl列表框中的數(shù)據(jù),在其他對話框能繼續(xù)使用。 首先,在mainDlg.h中定義一個結(jié)構(gòu)體如下: 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();//表項(xiàng)總數(shù) for(int i=0;i //按行讀取數(shù)據(jù) 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); } 這樣,關(guān)閉IDD_DIALOG_PRODUCT對話框后,數(shù)據(jù)保存到結(jié)構(gòu)體中了嗎?編譯沒有問題,運(yùn)行有問題。! 再到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列表框中第三列的值嗎??? |
|
這個...沒有插入代碼看的好眼暈... 大致看了一下,思路貌似沒錯。 只要保證productinfo是個全局變量就可以,這樣ProductDlg對productinfo修改后,其中的值會發(fā)生變化,ProductDlg關(guān)閉后,productinfo的值也不會銷毀,其他對話框依然可以調(diào)用。 至于為什么運(yùn)行出問題,樓主可以單步跟蹤一下。 |
|
像我這樣在mainDlg.h中定義的productinfo屬于全局變量了?如下: mainDlg.h中定義一個結(jié)構(gòu)體如下: public: typedef struct PartDefinition { CString PartID; CString PartName; CString GivenName; CString AF; CString Type; }ProductInfo; ProductInfo *productinfo; 我有點(diǎn)糊涂,因?yàn)槭歉鶕?jù)對話框建立的工程,所以怎么樣判斷哪個是主對話框,這個productinfo一定要做主對話框中定義成全局變量嗎? |
| 6 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 能源材料化學(xué)課題組招收碩士研究生8-10名 +5 | 脫穎而出 2026-03-16 | 15/750 |
|
|---|---|---|---|---|
|
[考研] 一志愿天津大學(xué)化學(xué)工藝專業(yè)(081702)315分求調(diào)劑 +12 | yangfz 2026-03-17 | 12/600 |
|
|
[考研] 307求調(diào)劑 +3 | wyyyqx 2026-03-17 | 3/150 |
|
|
[考研] 301求調(diào)劑 +10 | yy要上岸呀 2026-03-17 | 10/500 |
|
|
[考研] 328求調(diào)劑,英語六級551,有科研經(jīng)歷 +4 | 生物工程調(diào)劑 2026-03-17 | 8/400 |
|
|
[考研] 【考研調(diào)劑】化學(xué)專業(yè) 281分,一志愿四川大學(xué),誠心求調(diào)劑 +8 | 吃吃吃才有意義 2026-03-19 | 8/400 |
|
|
[考研]
|
然11 2026-03-19 | 4/200 |
|
|
[考研] 求調(diào)劑一志愿南京航空航天大學(xué)289分 +3 | @taotao 2026-03-19 | 3/150 |
|
|
[考研] A區(qū)線材料學(xué)調(diào)劑 +5 | 周周無極 2026-03-20 | 5/250 |
|
|
[考研] 求調(diào)劑 +3 | @taotao 2026-03-20 | 3/150 |
|
|
[考研] 286分人工智能專業(yè)請求調(diào)劑愿意跨考! +3 | lemonzzn 2026-03-17 | 4/200 |
|
|
[考研] 求調(diào)劑 +3 | 暗涌afhb 2026-03-16 | 3/150 |
|
|
[考研] 0703化學(xué)調(diào)劑 +4 | 18889395102 2026-03-18 | 4/200 |
|
|
[考研] 0703化學(xué) 305求調(diào)劑 +4 | FY_yy 2026-03-14 | 4/200 |
|
|
[考研] 材料工程專碩調(diào)劑 +5 | 204818@lcx 2026-03-17 | 6/300 |
|
|
[考研] 化學(xué)工程321分求調(diào)劑 +15 | 大米飯! 2026-03-15 | 18/900 |
|
|
[考研] 0854可跨調(diào)劑,一作一項(xiàng)核心論文五項(xiàng)專利,省、國級證書40+數(shù)一英一287 +8 | 小李0854 2026-03-16 | 8/400 |
|
|
[考研] 334求調(diào)劑 +3 | 志存高遠(yuǎn)意在機(jī)?/a> 2026-03-16 | 3/150 |
|
|
[考研] 293求調(diào)劑 +11 | zjl的號 2026-03-16 | 16/800 |
|
|
[考研] 085601材料工程315分求調(diào)劑 +3 | yang_0104 2026-03-15 | 3/150 |
|