VOID CDialog1::OnButtonAdd() { CDialog2 dlg; CString str_ed1; CString str_ed2; int chk; CString str_index//追加 dlg.m_pstr=&str_ed1; dlg.m_qstr=&str_ed2; dlg.m_chkBOX=chk; i=m_list.GetItemCount(); dlg.DoModal(); if(chk==0){ m_list.InsertItem(i,(LPCTSTR)str_ed1); m_list.SetItemText(i,1,(LPCTSTR)str_ed2); } else if(chk==1){ for(int j=0;j<i;j++){//追加 while((index=m_list.GetNextItem(index,LVNI_ALL))!=-1){ str_index=m_list.GetItemText(index,0) if(str_ed1==str_index){n=j;} //EDIT1の内容が一致したらnにその行数を格納 } m_list.InsertItem(j,(LPCTSTR)str_ed1); m_list.SetItemText(j,,1(LPCTSTR)str_ed2); } MessageBox("上書きしました");//ここまで } }としましたが更新になりません。。 おかしい箇所をご指摘ください。デバッグではjの中身がおかしかったとおもいます。後jの中身が正しくてもなぜか更新されなかったです。
コモンダイアログ2
コモンダイアログ2
昨日ご質問させていただきましたが長くなってしまったので新しくスレをたてさせていただきます。
Re:コモンダイアログ2
jの中身がどうおかしかったのでしょうか?
ざっと見た感じですが、jに関してはおかしく無さそうですよ?
もう一度流れを確認します。
1:ダイアログ1には、パスと拡張子を表示する為のリストビューと追加用のボタンがある
2:ダイアログ2には、パスを入力する為のエディットボックスと、更新するか否かを選択する為のチェックボックスがある
3:ダイアログ1の追加ボタンを押すと、ダイアログ2が表示される
4:チェックボックスにチェックが入っていた場合は、エディットボックスに入力された内容をダイアログ1へ渡し、データを更新する
5:リストビューに既に表示されている内容と、新たに追加された内容を比較し、同一の物があった場合は何もしない
6:5で同一の物が見つからなかった場合はリストビューへ追加する
これで間違いないでしょうか?
ざっと見た感じですが、jに関してはおかしく無さそうですよ?
もう一度流れを確認します。
1:ダイアログ1には、パスと拡張子を表示する為のリストビューと追加用のボタンがある
2:ダイアログ2には、パスを入力する為のエディットボックスと、更新するか否かを選択する為のチェックボックスがある
3:ダイアログ1の追加ボタンを押すと、ダイアログ2が表示される
4:チェックボックスにチェックが入っていた場合は、エディットボックスに入力された内容をダイアログ1へ渡し、データを更新する
5:リストビューに既に表示されている内容と、新たに追加された内容を比較し、同一の物があった場合は何もしない
6:5で同一の物が見つからなかった場合はリストビューへ追加する
これで間違いないでしょうか?
Re:コモンダイアログ2
外観に関しては分かっています。
ただ、上書きの部分の考え方がよく理解できないんですよ。
上書きにチェックが入ってなくて、同じ内容のデータが見つかった場合はどうするんですか?
全く同じ内容のデータが追加される訳ですが、それは許すという事なんですよね?
ただ、上書きの部分の考え方がよく理解できないんですよ。
上書きにチェックが入ってなくて、同じ内容のデータが見つかった場合はどうするんですか?
全く同じ内容のデータが追加される訳ですが、それは許すという事なんですよね?