Visual C++でのツール番号の指定方法

このQ&Aのポイント
  • Visual C++でのツール番号の指定方法について解説します。
  • pictureBoxやtextBoxなどのツールを使用して、特定のファイルを表示する方法について説明します。
  • 番号をプログラム内で指定する際に、for文などを使用して効率的に実装する方法についても解説します。
回答を見る
  • ベストアンサー

visual C++でのツール番号の指定方法

Visual C++では、pictureBoxやtextBoxなどのツールがありますが、例えば、以下のようにpictureBoxの番号にあったファイルを表示する場合にはどのように書き込めばいいでしょうか? pictureBox1→1.bmpを開く pictureBox2→2.bmpを開く ・・・ pictureBoxn→n.bmpを開く nの数が少なければ、 pictureBox1->Image=Image::FromFile("C:/Users/1.bmp"); のように書いていけばいいですが、nの数が多くなれば、その分書き込まなければならないですし、 この番号をプログラム内でfor文などで指定できるようにするにはどのように書き込めばいいでしょうか?

  • kitct
  • お礼率13% (7/53)

質問者が選んだベストアンサー

  • ベストアンサー
  • FoolWord
  • ベストアンサー率73% (14/19)
回答No.1

こんな感じでいいでしょうか? int i; String^ s; for(i = 1; i <= n; i++) { s = "pictureBox" + i.ToString(); array<Control^>^ c = this->Controls->Find(s, false); if(c != nullptr && c->Length > 0) { PictureBox^ P = (PictureBox^)c[0]; P->Image = Image::FromFile("C:/Users/" + i.ToString() + ".bmp"); } }

kitct
質問者

お礼

コントロール配列について、全然勉強不足だったので、プログラム例まで書いていただいて、とても助かりました。 ご回答ありがとうございました。

関連するQ&A

  • Visual Basic 拡大方法について

    こんばんわ Visual Basic 2010を使用してプログラミングをしています。 地図の画像を読み込み、ダブルクリックをすると拡大するというものを組んでいます。 ただ、ダブルクリックすると拡大するところまではできたのですが ダブルクリックしたところがパソコンの画面の中央にくるようにするにはどうすればいいかがわかりません。 方法が分かるかた助言、アドバイスよろしくお願いいたします。 参考までに現在組んでいる拡大部分のコードは以下のようになっています。 パソコンの画面サイズは1200*800です Private Sub PictureBox1_DoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.DoubleClick Dim bmp = New Bitmap(PictureBox1.Image, PictureBox1.Width * 1.5, PictureBox1.Height * 1.5) PictureBox1.SizeMode = PictureBoxSizeMode.AutoSize PictureBox1.Image = bmp PictureBox1.Refresh() End Sub よろしくお願いいたします。

  • C#「オブジェクト参照が必要です」(初心者)

    Visual C# 2008を学習中なんですが、とりあえず何か作ってみようと思って、パラパラマンガに挑戦してみました。 Form1にpictureBox1を作り、waitを入れてイメージを書き換えるという単純なものです。 ところが実行しようと思ったら、「静的でないフィールド、メソッド、またはプロパティ’WindowsFormApplication1.Form1.pictureBox1’でオブジェクト参照が必要です」というエラーが出ます。その際のフォーカスは、main()内の Form1.pictureBox1.image = Image.FromFile("motion1.png"); ”Form1.pictureBox1”に当てられています。 何が原因と考えられるでしょうか。 もし情報不足であればご指摘いただくか、あるいはこの目的においてやらなければいけないこと、を大雑把に教えていただくだけでも幸いです。 よろしくお願いします。

  • VisualBasic2008でのツールの扱い方について

    VisualBasic2008でのツールの扱い方について 今、PCvs人間のじゃんけんプログラムを組んでいます。 グー・チョキ・パーそれぞれのPictureBoxを用意し、クリックイベントごとに人間の手の履歴を作成。 1:TextBoxを10個用意しています。   それをすべて"E"で初期化したいのですが、どうしたらよいでしょうか? 2:上で初期化したTextBoxに逐次値を入れたいです。   (ここでは人間がグーのPictureBoxをクリックしたとします。)   ユーザーから入力(イベント)を待ち、入力があれば順ずる値(G)をTextBox1に入れる。   (TextBox1="G")   続いて入力があれば(チョキが入力されたとします。)TextBox1の中身を   TextBox2にコピーしてTextBox1をT、TextBoxをGにする。   (他TextBoxも同様に1つずつ右シフトし、常にTextBox1に新規書き込み) このようなことがしたいのですが、やり方がわかりません。 本も5冊ぐらい読んだのですが、そこまで踏み込んだ事は書かれていませんでした。 どうかよろしくお願いします。

  • C#でピクチャーボックスに文字を描画、出力する方法

    以下のことをやりたいのですが、できなくて困っています。 Microsoft Visual Studio 2010 Expressを使っています。 1、ピクチャーボックスに色画像を表示 2、ピクチャーボックスに文字(説明)も表示 3、その画像を出力 2まではできたのですが、2までできたあとに、プログラムのウインドウ上に他のウインドウ(マイコンピュータやマイドキュメントなど)が表示されたり、プログラムのウインドウを最小化したりして、一度隠れてしまうと文字が消えてしまうようで、画像のみの出力になってしまいました。(画像のみの出力には成功しています) なんとかして出力する方法はないでしょうか。 以下がソースです。よろしくお願いします。 ボタン1 Bitmap bmp6 = new Bitmap(800, 600); int sr, sg, sb, i, j; sr = 100; sg = 100; sb = 100; for (i = 0; i < 40; i++) { for (j = 0; j < 40; j++) { bmp6.SetPixel(i, j, Color.FromArgb(sr, sg, sb)); } pictureBox1.Image = bmp6; } ボタン2 string s1 = "文字"; Font newfont = new Font("MS明朝", 10); pictureBox1.CreateGraphics().DrawString(s1, newfont, Brushes.Blue, 50, 200); ボタン3 pictureBox1.DrawToBitmap(bmp, new Rectangle(0, 0, 800, 600)); bmp.Save(c:\\a.png);

  • Visual C++ 6.0 行番号の表示

    とても基本的なことで申し訳ないのですが、 Visual C++ 6.0 でソースコードの左に行番号を 表示することは可能でしょうか? ツールのカスタマイズやオプションなど 一通り探したのですが みつかりません。。。

  • visual c++ のグローバル変数宣言について

    visual c++で、 例えば下記のようにグローバル変数宣言するが 下記プログラムの「FileMei1[0][n1] = 0;」のところでブレークをかけてプログラムを走らせると、ウォッチウィンドウで「FileMei1エラー: 識別子 'FileMei1' はスコープ外です」とでてきます。 グローバル変数宣言のやり方間違っているのでしょうか? namespace TestCpp { extern char FileMei1[300][100]={ 0 }; public void aa{ for(n1=0; n1 < 100 ; n1++) { FileMei1[0][n1] = 0; } }

  • Visual C++でのファイルの配置に関して。OpenGL使用。現在

    Visual C++でのファイルの配置に関して。OpenGL使用。現在ブロック崩しを作っています。 そこでbmpファイルを使いたいのですが、配置する場所が分かりません。Visual C++の”ソースファイル”の場所に「block.cファイル」、”ヘッダーファイル”の場所に「block.h、use_bitmap.h」ファイルをおき、試しに”リソースファイル”の場所に「image1.bmp、image2bmp」ファイルをおいて実行したところ、「image.bmpが読み込めませんでした。続けるには何かキーを押してください。」と表示されbmpファイルが読み込まれません。どこにファイルを置けばよろしいのでしょうか。回答よろしくお願いします。

  • Visual C++ 2005 のプログラムについて

    今回課題としてC++のプログラムを作れというものを突然出されて、C++をほとんど知らないので戸惑っています。 ○数字の、1を入力するとE、2ならD、3ならC、4ならB、5ならA、を表示するプログラムをswitch文を使ってつくりなさい。 ○九九の表を表示するプログラムを作りなさい。配列を使用して作りなさい。 というものです。Visual C++ 2005を使っています。いろんなサイトを見て自分なりにやってみましたが、どうしてもうまくいきません。どういったプログラムになるのか教えてください。よろしくお願いします。

  • 挿入されている画像をクリアする(VB.2003)

    VB.NET2003 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'ピクチャーボックス1~2のイメージをクリア For Each picBox As PictureBox In New PictureBox() {PictureBox1, PictureBox2} picBox.Image = Nothing Next 'ピクチャーボックス3~4にイメージを設定 PictureBox3.Image = Image.FromFile("C:\image03.jpg") PictureBox4.Image = Image.FromFile("C:\image04.jpg") End Sub Private Sub PictureBox3to4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox3.Click, PictureBox4.Click For Each picBox As PictureBox In New PictureBox() {PictureBox1, PictureBox2} If picBox.Image Is Nothing Then picBox.Image = sender.Image Exit Sub End If Next End Sub 上記は、ピクチャーボックス3~4のどれかが押されるとピクチャーボックス1に押された画像が挿入され、 次にピクチャーボックス3~4のどれかが押されると次はピクチャーボックス2に押された画像が挿入されるプログラムなのですが、 ボタン1を押すと、元に戻す「ピクチャーボックス1、2に挿入されている画像があればクリアする」プログラムを 作りたいのですが、サッパリ分かりません。 どなたかご教授願います┏○

  • Visual Studio (Visual C++) の操作方法による小技・テク

    只今、Visual Studio (Visual C++ 6.0) を使用してプログラムを組むといった仕事をしています。 (MFCを使うわけでもなく、単にC/C++プログラムを組んでます) ですが、単調にカチャカチャとキーボードで打ち込むだけで、いまいち機能を使いこなせていないような気がします。 使えるショートカットキーや、使いやすい環境設定など、より良く使えるようなアドバイスが欲しいです。 また、VC++のインストールの際にいろんなツールも一緒にインストールしたようなのですが、この辺のツールの使い道も良く分かりません(Windiff等・・・) 自分でもWeb検索して探してみたのですが、いまいちパッとしたサイトに巡り会えません。 どんな些細な事でも構いませんので、アドバイス or 参考になるようなサイトを教えて頂けませんでしょうか? 過去に同じ質問があったらすみません。 よろしくお願いします。

専門家に質問してみよう