• ベストアンサー

「C++」で「ピクチャーボックス」を動的生成する方法はありますか?

「C++」で「ピクチャーボックス」を動的生成する方法はありますか? サンプルなど紹介しているサイトもよければ教えてくれないでしょうか?

noname#129137
noname#129137

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

  • ベストアンサー
回答No.2

 こんばんは。  以下URLに記載されています。  http://msdn.microsoft.com/en-us/library/b7w5x74z(VS.80).aspx  newで作成するのであれば、大体以下の様になるのでは。 //ヘッダに置く。コンストラクタでNULLを入れておく CStatic* m_pStatic; //ピクチャーボックスを作成したいところで m_pStatic = new CStatic(); m_pStatic->Create(TEXT("test"), WS_CHILD | WS_VISIBLE | SS_BITMAP | SS_CENTERIMAGE, CRect(0, 0, 100, 24), this/*, 必要ならば作成したIDを入れる*/); HBITMAP hBitmap = (HBITMAP)::LoadImage(NULL, TEXT("test.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); _ASSERT(hBitmap); m_pStatic->SetBitmap(hBitmap); //OnDestroyで始末 void CMFCDlg::OnDestroy() { CDialog::OnDestroy(); // TODO: ここにメッセージ ハンドラ コードを追加します。 if(m_pStatic) { HBITMAP hBitmap = m_pStatic->SetBitmap(NULL); if(hBitmap) ::DeleteObject(hBitmap); delete m_pStatic; } }

noname#129137
質問者

お礼

回答ありがとうございました。 今考えているプログラムの参考にさせていただきます。

その他の回答 (1)

  • ohtawa
  • ベストアンサー率23% (9/38)
回答No.1

C++というだけでは回答しにくいな・・・ SDKとかMFCとかNETとか指定しないと

noname#129137
質問者

補足

「MFC」を使っています。

関連するQ&A

  • C#ピクチャーボックス再描画について

    C#ピクチャーボックス再描画について 動的生成したピクチャーボックスに文字を描画します そのあと、そのピクチャーボックスをD&DでForm内を移動できるようにしています その際、あるピクチャーボックスが別のピクチャーボックスの上を通過したり 他のコントロールが上になったりすると、描画した文字が消えてしまいます。 再描画について調べるとRefleshやUpdateとかができました。 しかし、Refleshを使うと文字を描画する前の状態を再描画してしまいます。 再描画の方法はTimerで10ミリ秒毎ぐらいにしようと思ってます。 Refleshをピクチャーボックスに文字を描画させた後に再描画できるように設定できればいいんですが…。 他に方法があったりしたら教えてください!!

  • ピクチャボックス

    ピクチャボックスに、指定した絵を並べて表示する事は出来ますか? 使った人が選んだ絵がピクチャボックスより大きかったらそのままで、小さかったらピクチャボックスの中に並べて表示したいんです。

  • C#のピクチャボックスにCLIのHBITMAPを

    C#のピクチャボックスにC++/CLIのHBITMAPを貼り付けたいです。 方法を教えてくれませんか? 今、考えている方法は以下ですが、中々難しいです。 1.C#側 BitmapからIntPtr型で hDC を取得  → C++/CLIに渡せない 2.C++/CLIでhDCにHBITMAPを貼り付け  →IntPtr型を定義できない・・・。 以上、宜しくお願い致します。

  • ピクチャボックス間のコピー方法

    たびたび質問しているhidezoです(^_^; 表題のように、ピクチャボックスにある画像を、別のピクチャボックスにコピーしたいのですが、うまくいきません。 おそらく簡単な解決策があると思うのですが、ヘルプを参照してもよく分かりませんでした。 プログラムの内容 オブジェクト Picture2,Picture3に同じ画像を代入 Piture2上にLineを描画 2回目以降のPiture2にLineを描画する際に一度Picture3を代入して元の画像に戻してからLineを描画 (ゲームでいうとキャラクタ移動でキャラクタと背景の重ね合わせみたいな感じです) やってみた方法 方法1(ダメでした) Picture2.Picture = Picture3.Picture 方法2(ダメでした) Picture2.PaintPicture Picture3.Picture, 0, 0 方法3(できたけど・・・) SET Picture2.Picture = TMP ※TMPは・・・ Set TMP = LoadPicture(strOpenFile) Set Picture3.Piture = TMP 方法3の場合、グローバル変数を使わなくちゃいけないので避けたいです。よろしくお願いします。

  • ピクチャーボックスに点を打つ .NET

    VB6では、ピクチャーボックスに点を打つ場合は、 Picture1.PSet (100, 50) で良かったのですが、VB9ではどのようにするのでしょうか? また、.NETの画像について詳しく書かれているサイトはありますか

  • C#でのコントロール配列について

    C#でのコントロール配列について ピクチャーボックスを配列にして動的生成しています (日本語おかしい…?) そこで質問です。 あるピクチャーボックスをクリックすると クリックされたピクチャーボックスの値(?)とかを取得 (たとえば、Nameとか) 1つだけの場合なら、イベントのClickでできたんですが 配列にすると、どうすればいいのかわからなくなりました わかりやすいサイトとかあったら教えてください!

  • ピクチャーボックス上に描いた円をうまく保存できません

    1.予めピクチャーボックスに画像を表示しておき 2.そのピクチャーボックス内に円を描き↓ Picture1.Circle (10, 10), 500 3.それら両方(1で予め表示しておいた画像と、2で描いた円)を保存しようと↓ SavePicture Picture1.Image, App.Path & "\Test.bmp" とすると、1で予め表示しておいた画像だけが保存され、2で描いた円が保存されません。 両方とも(1で予め表示しておいた画像の上に2で描いた円が表示されるように)保存したいのですが、どのようにすればよいでしょうか。 できれば具体的にサンプルコードなどをご教授いただけると大変ありがたく存じます。 恐れ入りますが、何卒よろしくお願いいたします(VB6.0)

  • ピクチャボックスのクリックイベント

    ピクチャボックスのクリックイベント Visual C#でトランプゲームを作っているのですが this.PB = new System.Windows.Forms.PictureBox[54]; ↑のようにピクチャボックスの配列作ったのですが それぞれのクリックイベントを作りたいのですが、それがどうしても分かりません たとえばPB[30]がクリックされたらPB[30]の画像を他のピクチャボックスに移すなど このようなことをするにはどうすればいいですか?

  • ピクチャーボックスでのスクロール方法

    ピクチャーボックスの中にPrintを使ってdataの出力やそのdataを基にしてLine等で作図をさせています。しかし、これらがピクチャーボックスの範囲を超える時は全体を見ることができません。リストボックスのようにスクロールして見るようにできないのでしょうか。画像dataなら分かるのですが、・・・・。よろしくお願いいたします。

  • ピクチャーボックスの画像が欠けてしまいます。

    VB.NETとWinXPなのですが、 コマンドボタンを押して、ファイルダイアログボックスを開いて jpgファイルを指定するとピクチャーボックスにその 画像が表示されるようなものをつくっているのですが、 ピクチャーボックスの上に出るファイルダイアログボックスが重なっていた部分だけ画像が欠けてしまいます。 Picturebox1.Refresh()かなと思って試してみたのですが、今度は全部消えてしまいました。 良い方法があったら教えて頂きたいです。 よろしくお願いします。

専門家に質問してみよう