none
マウスコントロールについて質問です。 RRS feed

  • 質問

  • pictureBoxに画像を呼び出し、
    Cursorの模様を受十字架に変えて、
    マウスポインタを真中に固定させて、
    Wheelで拡大しマウス左ボタンが押されたとき、マウスドラッグスクロールをさせよう思っています。

    詳しい方、教えていただけませんでしょうか? ソースまで 教えていただければ幸いです。

    2012年8月1日 11:06

回答

  • pictureBoxに画像を呼び出し、
    先の投稿ではできているので除外
    Cursorの模様を受十字架に変えて、
    pictureBox1.Cursor = Cursors.Cross;
    マウスポインタを真中に固定させて、
    Point p=PointToScreen(new Point( pictureBox1.Width/2,pictureBox1.Height/2));
    Cursor.Position = p;
    Cursor.Clip = new Rectangle(p, Size.Empty);
    Wheelで拡大しマウス左ボタンが押されたとき、マウスドラッグスクロールをさせよう思っています。
    c先の投稿コードでMouseDownで開始位置、MouseMove,MouseUpで座標を取得していますよね?
    その座標の移動量があれば、あとは画像の現在の表示座標のオフセットを計算するだけです。

    詳しい方、教えていただけませんでしょうか? ソースまで 教えていただければ幸いです。

    質問者が回答者にソースコードを要求するのはよくない態度ですよ。

    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答としてマーク 山本春海 2012年8月22日 5:14
    2012年8月1日 13:33

すべての返信

  • まず、お断りしておきたいのですが、フォーラムはあなたの代わりにプログラムを作ってもらう場所でも、修正してもらう場所でもありません。
    いきなり「作り方を教えて欲しい」、「動くソースコードが欲しい」と言われると、第三者に仕事を依頼しているようなことになるので、敬遠されます。そういった仕事を引き受けてくださる方にお金を払ってでも依頼してください。

    次に、どこまでは自分でわかる、作れるのでしょうか。
    自分の力量であるとか、経験であるとか、努力した結果であるとか、そういった情報をご提示いただかないと、適切な助言も難しいでしょう。返答してもわかりづらいもので「役に立たない」という評価になっては回答する側としても厳しいものです。

    なお、拡大し、スクロールしというようなご所望の動作を、仮に Windows フォームで実現しようとすると、Image プロパティを使うレベルでは足りません。自分で画像を画面に描くスキルが必要です。

    -----
    って、このスレッドの後だったのか…。orz
    2012年8月1日 13:33
    モデレータ
  • pictureBoxに画像を呼び出し、
    先の投稿ではできているので除外
    Cursorの模様を受十字架に変えて、
    pictureBox1.Cursor = Cursors.Cross;
    マウスポインタを真中に固定させて、
    Point p=PointToScreen(new Point( pictureBox1.Width/2,pictureBox1.Height/2));
    Cursor.Position = p;
    Cursor.Clip = new Rectangle(p, Size.Empty);
    Wheelで拡大しマウス左ボタンが押されたとき、マウスドラッグスクロールをさせよう思っています。
    c先の投稿コードでMouseDownで開始位置、MouseMove,MouseUpで座標を取得していますよね?
    その座標の移動量があれば、あとは画像の現在の表示座標のオフセットを計算するだけです。

    詳しい方、教えていただけませんでしょうか? ソースまで 教えていただければ幸いです。

    質問者が回答者にソースコードを要求するのはよくない態度ですよ。

    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答としてマーク 山本春海 2012年8月22日 5:14
    2012年8月1日 13:33
  •  プログラムを作るという作業を、何か勘違いされているのではないでしょうか。

     プログラムは、「ああしたい」「こうしたい」を書いていくことではありません。「ああしたい」とこに必要な事象を積み上げていくことです。

    pictureBoxに画像を呼び出し、
    Cursorの模様を受十字架に変えて、
    マウスポインタを真中に固定させて、
    Wheelで拡大しマウス左ボタンが押されたとき、マウスドラッグスクロールをさせよう思っています。

    で、どこまでできているのでしょう?それぞれ、何が必要だと考えているのでしょう?

     とりあえず、PictureBox に画像を呼び出すと、拡大縮小してスクロールというのは難しいでしょう。Bitmap に呼び出して、それに対して拡大/縮小を行い、PictureBox に描き出すようにします。
     スクロールは、ある範囲だけを Bitmap から PictureBox に転送するようにコードを書きます。
     マウス ポインタを中心に固定するのは、カーソルを非表示、あるいは透明・極小さいものに変えて、対象のウインドウがすべてのマウス入力を受け取るようにすればできるでしょう(X Window ではやったことがあるけど、Windows でできたっけ?)


    Jitta@わんくま同盟

    2012年8月1日 13:42