• ベストアンサー

【VisualC++.NET】画像の表示に関して質問です

 『VisualC++.NET』を使用して画像処理プログラムを作成している高専生なのですが、表示方法に関して質問です。  今現在は『MFCアプリケーション』の『シングルドキュメント』で画像処理プログラムを作成し、画像を表示させていますが、このままでは、元画像を表示させたまま処理後の画像を表示させることができません。  そのため、処理後の画像を「ダイアログ」に表示させたいのですが、その方法やそれにつながる良い情報をご存知の方がいらっしゃるようでしたら、お教え願います。

  • Yam_T
  • お礼率90% (9/10)

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

  • ベストアンサー
  • clsdi99
  • ベストアンサー率63% (31/49)
回答No.3

ダイアログの生成できてよかったですね。 ダイアログに画像データを渡すには、たとえばダイアログのコンストラクタに2次元配列のポインタを渡すとかですかね。 (ちなみに、ここでコンストラクタと書いたのは、ダイアログがモーダルの場合です。もし、モードレスならば、ポインタを設定する関数などを用意してあげて、それを呼び出して渡すって感じになると思います。)

Yam_T
質問者

お礼

連絡が遅れて大変申し訳ありません。 頂いたアドバイスと担当教官の意見を参考に、どうにか描画ができました。本当にありがとうございました。

その他の回答 (2)

  • clsdi99
  • ベストアンサー率63% (31/49)
回答No.2

>いま、特に知りたいのはダイアログの生成方法です という事ですが、これは簡単にダイアログリソースを作成し、クラスビューなどからクラスを作成すれば、できますよね? たぶん知りたいのは、そのダイアログにどのように画像を表示させればよいか?なんでしょうか。 画像データはどのようにViewまたはDocで保持していますか?例えば、CDCでメモリデバイスコンテキストとして持っているのでしたら、それらのデータをダイアログクラスに渡してあげてViewでやっているように描画する。 こーいった感じでしょうか?

Yam_T
質問者

お礼

回答ありがとうございます。 VisualC++初心者なので、はっきりとは分かっていないのですが、ファイルオープン命令を、  void CexmpView::OnFileOpen() から始めているということから、画像データはViewで保持していると言って良いのでしょうか。 ダイアログ生成方法は、読む限り簡単そうなので、もう一度参考書を見て試してみます。

Yam_T
質問者

補足

おかげ様でダイアログ生成方法は分かりました。 データをダイアログクラスに渡す方法をここに書いて説明ができるようでしたらお願いできますでしょうか。 また、画像データは画素ごとのRBGの値を2次元配列に入れたものを利用しています。

  • keibou21
  • ベストアンサー率31% (18/58)
回答No.1

具体的にどのような情報が欲しいのでしょうか? ダイアログの生成方法? 画像の描画方法?(SDIの方でしているようなのでこれは違うか) それともその他?? 具体的に何が分からないのかを明示されると的確なアドバイスがもらえると思います

Yam_T
質問者

補足

回答ありがとうございます。 いま、特に知りたいのはダイアログの生成方法です。 画像の描画方法が、シングルドキュメントで表示する場合と違うようでしたら、その事に関しても教えていただければ幸いです。

関連するQ&A

  • VisualC++.net MFCのウィザードで・・・

    当方初心者です。 VisualC++.net MFCのウィザードでシングルドキュメントで作成したアプリケーションをマルチドキュメントに変更するには、どの部分を変更したらよいのでしょうか? はじめからMFCを使って作り直さない方法をご存知の方おしえてください。

  • VisualC++ exeファイルと画像の関係

    VisualC++2008 Express Edition(win32アプリケーションモード)でショートゲームプログラムを作成してみましたが、release ビルドで作成された.exeファイルに、プログラム内の画像を含めることができません。例えばエンディング画面などは、ゲームをクリアするまで見ることができない設定にするほうがよいと思うのですが、 現在の設定では、作成されたreleaseフォルダに使用する画像(.bmpや.jpg)を手動で追加しなければならず、最初から見えてしまいます。何かいい方法はないでしょうか?

  • 画像を組み合わせる。

    VisualC++のMFCにて画像処理を行っています。 それぞれ二つの画像を2値化し、そのお互いの黒になっている部分を合わせ、一つの画像にしたいと思うのですが、合わせ方が分かりません。 2値化はOpenCVにて作成しました。 二つの画像はsrc_imgとtrc_imgとしています。 分かる方がいらっしゃいましたらよろしくお願いいたします。

  • VisualC++2005を使うと文字化けします。

    よろしくお願いします。windowsXP sp2です。 初めて、visualC++2005を使って『ウィンドウを作る』サンプルプログラムを実行したのですが、 作成されたウィンドウの、『タイトルバーの部分』 に表示される文字が化けてしまいます。 同じプログラムを『BCCDeveloper』で作成すると、文字化けしないで表示されます。 visualC++2005の設定で、どこか間違っているのでしょうか? 詳しい方、アドバイスをお願いします。

  • visualC#でのスクレイピング方法

    こんばんは、いつもお世話になっております。 会社にてvisualC#による情報処理を請け負うようになりました。 C#はあまり扱ったことがないのですが、早急に覚えなければならないため、 皆様のお知恵をいただきたく投稿させていただきました。 webサイトなどの情報を取得し、適正な値を表示するアプリケーションを作成する業務なので、 とりあえずオークションサイトなどの落札価格などを取得し、平均価格をだすようなソフトの工程を勉強したいと思っています。 プログラムに疎いため、的確な質問になっていないかもしれませんが、 スクレイピングなどの知識が必要だといわれました。 試験が9月と12月なのでそれまでにと思っています。 何か詳しい参考書や参考になるサイト、またはアプリケーションのサンプル等ありませんでしょうか? 宜しくお願いいたします!

  • VisualC++でエラーが大量に

    学友がVisualC++で困っています。 私では力になりません 代わりに救済をお願いします。 彼曰く VisualC++2005をインストール。 C++設定で新規プロジェクトをウィザードを使って、MFCアプリケーションスタイルで作成してすぐにビルドを行うとエラーが109件。 エラーの中には構成文エラーや「識別子が定義されていない」などのエラーが含まれます。 原因と対策お願いします

  • VC++.NET DLLからのダイアログの表示

    こんばんは。 VC++.NETでDLLを作成しました。 内容はダイアログを表示させるだけの単純なもので DLLの種類はMFC拡張DLLで作成しました。 (CDIALOGを継承したクラスTESTDIALOGのコンストラクタ、デストラクタがあるだけのもの) これをテスト用の単純なMFCアプリケーションで呼び出したところ ダイアログを表示させることができましたが 別の複雑なアプリケーション(DLLからDLLを呼ぶなどしている)で 呼び出したところダイアログが表示されません。 コンパイルエラーなどもでないし 何がいけないのか分かりません。 呼び出し側ではメニューにイベントハンドラを作ってそこで TESTDIALOG dlg; dlg.DoModal(); としているだけなのですが・・・ (デバッガで追ったところMFCのdlgcore.cppのCDialog::DoModalの m_lpDialogTemplateNameが不適切なptrとなる辺りに原因はありそうなのですが何故そうなるのかわかりません。) どなたかダイアログが表示されない原因がお分かりになる方 よろしくお願いします。

  • VisualC++でRS232C経由のデータの送受信方法

    仕事でVisualC++でプログラムを作っているのですが、VC++は初心者なので解からない事がいっぱいです。 今作っているプログラムは、VisualC++でRS232Cを使って送られてくるデータをダイアログのエディットボックスに表示するというプログラムなんですけど、どうやってデータを受取るのかまたそのデータをどうやって表示するのかがまったく解からない状態です。 解かる方は教えて下さい。 よろしくお願いします。

  • 画像表示

    VisualC++6.0を用いて画像を表示させたいのですが・・・ファイルから画像を選択し画像を表示する方法はどうやればよいのでしょうか?開くというコマンドを用意するまではわかるのですが・・・そのあとどういった命令を施せばよいのか分かりません。教えてください。

  • VisualC++2005 「C2039 SetWindowTextAがCButton のメンバでは無い」と出てしまう。

    VisualC++2005において、プロジェクト(ソリューション)を以下のように構成した場合に表記のエラーが出ます。 解決方法ご存知でしたら教えて下さい。 (MFC初心者です) 【構成】 ・新規のソリューションにMFCのMDI形式のプロジェクトを作成 ・さらにMFC拡張DLLのプロジェクトを作成する (1つのソリューションに2つのプロジェクトを同居させる) ・MDIのプロジェクトは特に何もしない ・MFC拡張DLL側でダイアログを1ヶ作成する ・作成したダイアログのクラスを作成 ・OnInitDialog()を作成 ・作成したダイアログにあるボタンにメンバ変数(例:m_Button)を割り当てる ・OnInitDialog()内でm_Button.SetWindowText("HOGE");と記述 ・コンパイルするとエラーが出る 【エラー】 error C2039: 'SetWindowTextA' : 'CButton' のメンバではありません。 1> c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxwin.h(2990) : 'CButton' の宣言を確認してください。 特に変わったことをしているわけではありません。 さらに「m_Button.」と入力した時点で入力補助機能が働くので m_Buttonはちゃんと認識されていると思います。 'CButton' 固有のメンバ関数の使用には問題ありませんが、 継承されているメンバ関数はことごとくNGです。