[問題] GetItemDataPtr得到NULL

看板C_and_CPP作者 (泰勒大師)時間13年前 (2011/06/14 01:08), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) MFC 問題(Question): 我在ListBox裡新增了一串的字串跟指標 用SetItemDataPtr來給他資料的指標 但是我在要取出指標時有些會變成NULL 可能是固定的第18筆資料(或是更多的其他筆資料也會) 每次用GetItemDataPtr就會得到NULL 但是我在SetItemDataPtr的時候都是回傳成功的值 程式碼(Code):(請善用置底文網頁, 記得排版) BOOL CSystem::ShowList(CMyFilm *ListFilm,int Num) { CProjectApp *m_App=(CProjectApp*)AfxGetApp(); int i; for(i=0;i<Num;i++) { m_App->m_List.AddStr(ListFilm[i]); if(m_App->m_List.pListBox->SetItemDataPtr (i,&ListFilm[i])==LB_ERR) AfxMessageBox(L"SetItemDataPtr ERROR"); } return 0; } 上面這段是新增了一堆影片的片名 和影片的指標給他 過程都沒有跳出AfxMessageBox(L"SetItemDataPtr ERROR"); 應該是都成功 CMyFilm* ListBar::GetCurrentDataPtr() { int index; CMyFilm *film; CString Debug; index=pListBox->GetCurSel(); Debug.Format(L"%d",index); film=(CMyFilm*)(pListBox->GetItemDataPtr(index)); if(film==NULL) AfxMessageBox(L"film==NULL ; "+Debug); if(index==-1) AfxMessageBox(L"Not choose"); return film; } 不過在得到指標的地方 一堆都是得到NULL 也就是要回傳的film==NULL 為什麼會這樣?? 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.175.131.223
文章代碼(AID): #1DzaG05a (C_and_CPP)