• 締切済み

ダイアログボックスからビットマップを選択後画像を消去したい

visualstadioでVC++を使って、ビットマップ表示をしたいのですが、ピクチャーコントロールにsetbitmapを使って描画したのはいいのですが、消去ができません。 ダイアログボックスから画像を選択して、画像パスをエディットコントロールに表示します。表示されたパスから画像を表示しています。エディットコントロールのパスを消去すると、画像も消去したいのですが、消去できません。ネットを調べてもでてきません。 お願いします。

みんなの回答

  • Kuppycat
  • ベストアンサー率50% (109/216)
回答No.1

SetBitmapでファイルネームをNull(無指定)でよかったかと。 VBが専門なのでうろ覚え。 ごめんなさい。

関連するQ&A

  • ダイアログボックス・・・・・ bySDK

    現在SDKにて画像処理ソフトを作成しています。もちろん個人にて。 そこで確実にほしい機能”ヒストグラム”の表示を行おうと思ったのですが、問題が起こりました。 目的は”2値化"という処理に伴い、ダイアログボックスに入力した画像のヒストグラムを表示させたいということです。 もちろんヒストグラムは単に白黒だけで表示させたいと思っています。 問題というのはダイアログボックスに任意の図形をどのように描画するかです。ビットマップの描画は以前行ったことがあるのですが、任意の図形は行ったことがありませんでした。 試しに、ダイアログボックスにPicture Controlを貼り付け、そのPicture ControlのデバイスコンテキストをGetDCにより無理やり取得し、そのデバイスコンテキストに直線などの描画を行ってみましたが、表示はされませんでした。(あたりまえかも・・・・) そこでまず、ダイアログボックスに使用するコントロール類は何を設定したらよいか? そして、そのコントロールから取得したデバイスコンテキストに直接描画は可能か? これらの質問に答えられる方はアドバイスをお願いしたいと思います。 よろしくお願いします。

  • VC++のダイアログボックスに絵を描くには?

    VC++初心者なんですが、画像処理関係のプログラムをVC++で作っています。で、子ウィンドウに表示されている画像のRGBそれぞれのヒストグラムをダイアログボックスに表示したいのですが、ダイアログボックスに絵(グラフ)を描く方法がわかりません。どういう手順でやればいいですか?エディットボックスにGDIとかで絵を描くことは可能なんですか?またはピクチャーボックスですか?

  • Bitmap画像の消去について

    やりたいこととして Bitmap画像を表示する前になにかしら背景が描画されています。 そしてボタンを押すとか何かしらイベントが起こったときにBitmap画像を描画します。 そしてまたボタンを押すと背景はそのままでそのBitmap画像だけを消去する ということがしたいです。 今、ピクチャーボックスを使ってBitmap画像を表示することはできます。 ただそのBitmap画像を消去することはできていません。 探しているとピクチャーボックスを白く塗りつぶして、背景を再描画するって方法はあるのですが、いろいろあってその方法は使いたくないです。 Bitmap画像だけを消去する方法はあるのでしょうか? OSはVistaで、VC++2003.netを使っています。 宜しくお願いします。

  • ダイアログボックスについて。

    ダイアログボックスについての質問です。 開発環境はVisual C++ 2005.netでありSDKを利用しています。 ダイアログボックスにPicture Controlを貼り付け、Combo Boxの内容が変わるたびにそのPicture Controlに画像を表示するようなプログラムを作りたいと考えています。 自分が考える手順としてはまずPicture Controlについてサブクラス化を行い、親のダイアログボックスが表示されると同時にPicture ControlのプロシージャでWM_CREATEメッセージを受け取り描画を行う。 そして親のダイアログボックスに貼り付けたCombo Boxの内容が変更された場合に、Picture ControlのウィンドウハンドルにむけてWM_PAINTメッセージを送信する。 こんな手順で行いたいのですが、少し不安な部分が出てきました。 Combo Boxの内容が変更され、Picture Controlのウィンドウハンドルに向けてWM_PAINTメッセージを送信し、Picture ControlプロシージャではWM_PAINTメッセージがきたとき画像の描画を行う場合、このプロシージャではどの画像を描画してよいか不明です。 そのため何番の画像の表示命令が来たのかを示すために、親のダイアログボックスに貼り付けたCombo Boxが変更された場合、Picture Controlに向けてWM_PAINTメッセージと表示画像番号をパラメータとして送信したいのです。 もちろんグローバル変数を用意すれば簡単なのですが、できるだけ使用しないように記述をしたいのです。そこで考えたのが、 SendMessage(GetDlgItem(hDlgWnd, IDC_PICTURE), WM_PAINT, 0, MAKELPARAM(0, number)); このようにnumberをLPARAMの下位ワードとして送信しようと考えました。 このメッセージ送信を行い、Picture ControlプロシージャでWM_PAINTメッセージが到着したとき、LOWORD(lparam)からnumberを取り出す。 実現したい目的のため、このような方法を考えましたが、エラーなく実行できるでしょうか? もしあやしい部分が見つかった場合はアドバイスをお願いします。そしてこの方法よりも簡単に処理できる方法があれば教えていただきたいです。 自分としてはサブクラス化は面倒なので、Picture Controlをオーナードローとして扱う方法も考えましたが、うまく動きませんでしたTT

  • VC++ダイアログボックスの表示更新がわかりません

    現在ダイアログボックスにスタティックコントロールを配置し、表示更新する際不明な点があります。VC6.0 MFCです。 1、ダイアログボックス上のコントロールに、作成したビットマップを表示させる際、OnInitDialog関数内で、Bitbiltしていますが、表示されません。 ボタンクリックイベント等で、同様の手順でBitbiltすると表示されます。 これはなぜなのでしょうか? また、ダイアログボックスが表示された際にBitmapを表示するにはどうすればよいでしょうか? 2、また、表示されたBitmapはダイアログボックスを動かしたり、隠れたりすると消えてしまいます。 再表示を自動的にさせるにはどうすればよいでしょうか?(OnDraw関数のようなものがあるのでしょうか?) 初歩的な質問で申し訳ありませんが、よろしくお願いいたします。

  • ダイアログボックスのタブコントロールの使い方について

    開発環境 VC++.net Win32プロジェクト→Windowsアプリケーション ダイアログボックスにTab Controlでタブページを貼り付けて ページ切り替えを行おうと思っているのですが タブを貼り付けるだけでは、上手くいかなく困っています。 『Tab 1』に『Static Text』を貼り付けて 『Tab 2』を選択しても、貼り付けた『Static Text』は消えることなく そのまま表示され続けます。 やはり、別で『Tab 1~5』までのダイアログを作成しないといけないのでしょうか? 知っている方いましたらご教授お願い致します。

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

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

  • フォルダ選択のダイアログボックスについて

    おはようございます。 現在、VB.NETでフォルダ選択のダイアログを表示させたいと 思っているのですが以下の記述だとダイアログは表示されますが 選択したフォルダのパスを取得する方法がわかりませんでした。 この後にどんな記述をすれば取得できるのでしょうか? 宜しくお願いします。 Dim f As New BrowseFolder() Console.WriteLine(f.BrowseDialog("出力先フォルダを指定してください。", Me))

  • 自作ダイアログボックス中のエディットボックスでCtrl+Aを使えるようにしたい。

    リソースエディタで作成したダイアログボックスの中のエディットボックスで、 Ctrl+Aで全範囲選択をしたいのですが実現方法が分かりません。 同様に、リストビューの選択行を「Delキー」で削除させる方法も教えていただきたいです。 (削除ボタンを作成し、その押下によって削除できるようにはなっています。) 環境は、VC++ 6.0、Win32 APIです。 よろしくお願い致します。

  • ダイアログの上のテキストボックスの、初期値を設定する方法が分かりません・・・・

    VSC++2005です、 ダイアログの上のテキストボックスの初期値を設定する 方法が分かりません、 ダイアログが表示されたとき、 ダイアログに貼り付けてあるテキストボックスの初期値を 入力しておきたいのですが、うまくゆきません 下のようにしました、 ボタンをクリックして、ダイアログを表示させ ダイアログ上の エディットコントロールに、値を表示させるつもりですが、 void CXXXView::OnBnClickedButton2() { // TODO: ここにコントロール通知ハンドラ コードを追加します。 Cfailsettei cf;  //ダイアログのクラスのインスタンス作成 cf.edit1.SetWindowTextA("yyy");   cf.edit2.SetWindowTextA("xxx"); //edit1、edit2は、エディットコントロールです cf.DoModal(); } エラーが起こってしまいます、 何故でしょうか? よろしくお願いします。

専門家に質問してみよう