イメージボックスについて
こんにちわ、Visual Studio 2005のC++を使ってプログラミングしているものです。イメージボックスについてお聞きしたいのですが、
private:array< PictureBox^>^ picture;
int n = 0;
int m = 0;
int l = 0;
for ( int n = 0; n < 4; n++ ) {
if(n % 4 == 0){m = m + 60; l = 0;} /** 4つずつImageboxを表示 **/
picture[n] = gcnew PictureBox(); /** イメージボックス生成 **/
picture[n]->Size = Drawing::Size( 50, 50 ); /** イメージボックスのサイズ **/
picture[n]->SizeMode = System::Windows::Forms::PictureBoxSizeMode::StretchImage;
picture[n]->Location = Drawing::Point( 10+50*l,10+m); /** イメージボックスの位置座標 **/
picture[n]->Name = String::Format( L"pictures{0}", n ); /** イメージボックスの名前 **/
this->Controls->Add( picture[n] );
Int32^ o = gcnew Int32( 0 );
System::String^ filename = "C:/Documents and Settings/user/デスクトップ/画像/";
filename += o->ToString("000") + ".bmp"; /** フォルダ内の画像 **/
bmp[n] = gcnew Bitmap(filename,true);
picture[n]->Image = bmp[n]; /** イメージボックスnにイメージn表示 **/
l++;
}
といった感じで、とりあえず4つのイメージボックスを作ろうとしているのですがうまくいきません。画像ファイルの名前の足し方に問題があるのでしょうか@@;
もしこのプログラムが通るようになったとしてもループ中に画像がなかったらエラーが起こってしまいますね。もし指定のフォルダを選んで、そのフォルダ内の画像を全て表示させるといったことはできないのでしょうか??それと今までデザイン時にピクチャボックスをダブルクリックすると、
private: System::Void pictureBox1_Click(System::Object^ sender, System::EventArgs^ e) {}
といったクリック処理のための関数が現れるのですが、この場合はどう処理すればよいのでしょう?
さらに言うとこれをパネルの上でやりたいのですが・・・
private: System::Void panel1_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) {
panel1->Controls->Add( picture[0] );
}
とりあえずこれは置いといて、どうプログラムすればよいのか分かる方がいればご教授お願いします。
お礼
なるほど・・ ありがとうございました。