listViewのサムネイルの更新
- 題名: listViewのサムネイルの更新
- 著者: yamyam
- 日時: 2012/06/16 19:06:53
- ID: 30586
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: listViewのサムネイルの更新
- 著者: Azulean
- 日時: 2012/06/16 20:57:10
- ID: 30588
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: listViewのサムネイルの更新
- 著者: yamyam
- 日時: 2012/06/17 10:56:09
- ID: 30590
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
現在,以下のような機能を実装したソフトをVC++2008のformアプリケーションで作成してますが,わからない点があるのでご質問させていただきます。
1.openFolderDialogで指定したフォルダの中にあるjpegファイルのパスを取得後,
imageListに登録し,listViewにサムネイル表示。
2.pictureBoxで動画を再生。
3.form上のボタンをクリックしたら,pictureBox->Image->Save("filename.jpeg",Imaging::ImageFormat::Jpeg);で再生中の動画の1フレームキャプチャし,jpeg形式で保存。
4.ボタンのクリックイベントハンドラ内で,1と同じ処理を行い,listBox内のサムネイルを更新。
上記の流れの処理を実行すると,3で作成したjpegファイルはlistBoxに追加されますが,サムネイル表示が,フォルダ内の一番古い更新日のファイルのものになってしまいます。
一度アプリケーションを終了し,再度アプリケーションを立ち上げてから1を実行すると,キャプチャした時点の画像が問題なくサムネイルに表示されます。
どのようにすれば,キャプチャした画像のサムネイルをすぐに反映出来ますでしょうか?
listBoxの更新のコードは以下のようになり,pictureBox->Image->Saveのすぐ後に実行しています。
//初期化
listView1->Items->Clear();
//保存先にあるjpegファイルの一覧を取得
array<String^>^jpegFile = System::IO::Directory::GetFiles(myFilePath,"*.jpeg");
//サムネイルのサイズの設定
imageList1->ImageSize = System::Drawing::Size(140, 115);
//listviewにimagelistを設定
listView1->LargeImageList = imageList1;
for(int i =0; i < jpegFile->Length; i++)
{
imageList1->Images->Add(Image::FromFile(jpegFile[i]));
listView1->Items->Add(jpegFile[i],i);
}