• 締切済み

(VC++2010)画像をドラッグしたいのですが

VC++初心者です。 学校の課題で、 Buttonを押して、画像ファイルを読み込みpictureBox1に表示 ↓ pictureBox1上でマウスドラッグをして、ドラッグで選択された長方形の部分の画像をコピーし、pictureBox2に表示 というプログラミングを書きたいのですが、ドラッグのところで詰まってしまっています。 ドラッグを開始した座標などをどう上手く使って行けばいいのかがわかりません… 初心者すぎて質問の仕方もイマイチわからないのですがどなたか教えて頂けると幸いです。

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

開発中の環境は Win32/MFC/C++Cli(WindowsForm)どれでしょう Win32なら WM_LBUTONDOWNメッセージを WndProcのメッセージ処理部 MFCなら PictureBoxのOnLButtonDown ハンドラ WindowsFormなら OnMouseDownハンドラ といった具合になります …

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

pictureBox1内でマウスの左ボタンが押下されたらドラッグ開始。 WM_LBUTTONDOWNのメッセージハンドラで開始座標を保持。 pictureBox1内でマウスの左ボタンが離されたらドラッグ終了。 WM_LBUTTONUPのメッセージハンドラで終了座標を取得。 で、開始座標と終了座標を比較して、より左上に近い側が始点として画像をコピーでしょうかね。 # ドラッグしながらpictureBox1の外へ行ってしまった場合の処理をどうするのか?というのがありますが……。 マウスキャプチャーとかのキーワードでも調べる必要ありますかねぇ。 右ボタンで…とかでしたらメッセージは読み替えて下さいな。 # 選択中の矩形を表示する場合はまた別の処理が必要ですけど。 # 「ラバーバンド」とかで検索して下さい。

関連するQ&A

  • VisualBasic2008を使い、画像のドラッグ&ドロップをしたい

    VisualBasic2008を使い、画像のドラッグ&ドロップをしたい まだVB2008の勉強を始めたばかりの初心者です。 PictureBox1~PictureBox4に表示されている画像をドラッグ&ドロップでPictureBox5にコピーして表示させたいのですが、どのようなプログラムにすればいいのかが分かりません。 PictureBox5には何度でもPictureBox1~PictureBox4の画像をドラッグ&ドロップで入れ替えができ、PictureBox1~PictureBox4の画像はそのままになるようにしたいです。 よろしくお願いします。

  • VBのPictureBoxで画像をドラッグして表示範囲を移動したい

    お世話になります。 VB.netのPictureBoxに画像を貼り付け表示しているのですが、 PictureBoxよりも大きい画像を表示した際にスクロールバーで表示範囲の移動はできるのですが、 これをスクロールバーではなくマウスをドラッグして表示範囲の移動をしたいのです。 どのようにすればできますか? よろしくお願いします。

  • vc++のpictureboxにopenGLの画像を描画する方法につい

    vc++のpictureboxにopenGLの画像を描画する方法について。 現在、Visual C++ 2010のフォームアプリケーションで、任意のパラメータを入力したらその値に応じて物体の動きが変わるといったアプリケーションを開発しています。その動き方をopenGLでアニメーションとして可視化したいと思っています。そして、そのアニメーションをvc++のフォームアプリケーションのpictureboxに表示したいと思っているのですが、vc++とopenGLのどちらもかなりの初心者なので、pictureboxへの表示の仕方がわかりません。 以下に参考URLを貼らせていただきます。このようなものにパラメータを入力する部分を設けたものを作りたいのですが、まったく意味がわかりません。どなたかご教授お願いいたします。 http://www.t-pot.com/program/127_OpenGLNET/index.html

  • PictureBox内の画像をマウスドラッグでスライド

    解像度の大きな画像ファイルを、小さなPictureBoxに読み込んだあと、虫眼鏡的に画像をマウスドラッグでスライドさせて、大きな画像の全領域を参照するようなもの(地図ソフトのようなイメージ)を作りたいのですが、PictureBoxにそのような機能はあるのでしょうか?

  • C#で4つの座標から新しい画像を作成

    C#のプログラミングについて質問です。 最初にpicturebox1に画像を表示させて、そこから座標を4つ(正方形になるように)選択し、選択した座標の範囲をpicturebox2に表示させたいのですが、どのようなプログラムを書けば良いか分かりません。座標を選択するとこまではできたのですが、4つの座標をどのようにすればpicturebox2に画像を表示させることができるか教えてください。 Rectangle z = new Rectangle(a,b,c,d); こんな感じに座標が入っています。

  • vc++にて、画像の色の情報表示プロパティをおしえてください。

    vc++のマネージ形式で,bmpやjpgの画像からこの画像は、4byte、あの画像は24byteとの色情報が使われてるとか色情報をbuttonを押してlabelに表示したいのですがどのプロパティを使えばいいかわかりません。MSDNでも探しましたけどわかりませんでした。初心者なので適切に教えてくれたらうれしいです。

  • VC++で困ってます・・・。

    VC++で、ビットマットフォーマットをする。課題がでました。 課題は、ピクチャーボックスにbmpファイルを表示して、表示したbmpからボタンを使って、ラベルや、テキストボックスに、そのbmpのバイト数や、画像に関する、情報を表示する課題です。 今は、ピクチャーボックスから画像を出すことはできたんですが、その後にどうやって画像に関する色のバイト数や、情報を表示するかわかりません。 どこを、いじってプログラムを作っていくかもわからない状況です。 初心者なんで、プログラムの例や、ビットマップファイルに使うプログラムとかいろいろ教えてください。

  • C#でマウスのドラッグで範囲を選択し画像を取得する

    マウスのドラッグで範囲を選択し画像を取得してPictureBoxに表示 という動作をC#でやりたいのですが、参考になるサイトがVB関連しかなく、困っています。 VBのコードをC#に変換するサイトを見つけたので、下記のサイトで変換してみました。 http://www.developerfusion.com/tools/convert/vb-to-csharp/ 変換しC#でイベントハンドラの名前を修正したり、構文的なエラーを潰し、デバックの起動までは辿りつけたのですが、動作が全く機能していません。 MessageBoxを使いどの動作まで機能しているのか調べたところ、PictureBox1_MouseDown内の動作や、Botton1_Click内の動作といった単純な機能すら動いていませんでした。 コピーペーストしたコードを消し、デザインフォームでButton1をダブルクリックし、その中に手打ちでコードを入力しても駄目だったので、原因がわからず困っています。 原因か解決方法をご存じの方がいらしたら、教えて下さると幸いです。 よろしくお願いします。

  • ドラッグできる画像

    こんにちは。2回目の質問です。 またJavaScriptについての質問なんですが、 HTMLページに画像が複数あって、マウスで自由にドラッグして好きな場所に配置したいです。これはHPで解説してくれているページを見つけたんですが、ちょっと違います。 どこが違うかというと、画像の重なり具合が調節できないこと。参考までにつぎのHPをみてください。(注:ポップアップの広告が出ます) http://holden.hp.infoseek.co.jp/sample/c_img5.html ここのお地蔵さんは、招き猫の上に表示することはできません。ただしドラッグしている間は別ですが。 このお地蔵さんと招き猫のようにドラッグで移動できて、さらに画像の上下(前後)をマウスクリックで変えるようにするにはどうしたらいいでしょうか? また2つ以上の画像を配置したい場合はどうしたら良いですか? JavaScriptの記述は私が参考に出したHPのもの意外でもかまいません。できればJavaScriptの記述を書いてほしいです。 お願いします。

  • VB6でマウスのドラッグで範囲を選択し画像を取得

    こんかいVBを初めて扱っています。 マウスのドラッグで範囲を選択し画像を取得してPictureBox2 に表示 ということをVB6で作成しようとしています。 参考になりそうなサイトは見つけたのですが、 http://hanatyan.sakura.ne.jp/dotnet/zu06.htm VBのバージョンが違うのでコンパイルは通りません。 関数の名前が変わっているから出来ないのか、 同じ機能は無いから違う方法を取らなければいけないのか? わからないことだらけで、ハマっています。 もし、何でも良いのでご存知の方がいらっしゃいましたら、 何卒、ご教授宜しくお願い致します。

専門家に質問してみよう