プロが教えるわが家の防犯対策術!

VB6で日曜プログラミングをしているものです。
パワーポイントのオートシェイプの線のような具合で
矢印をPictureBox内で扱いたいのですが、そのようなコントロールなど
ご存知の方いらっしゃいましたらご教示お願いできませんでしょうか?

イメージとしては、PicutreBox内でクリックすると矢印描画開始、
もう一回クリックして確定。
矢印の上でクリックすると、矢印にフォーカスが当たる(頭と尻尾に○が表示?)。
確定後はドラッグアンドドロップが可能で矢印の先端をドラッグアンドドロップ
することで、矢印の長さ、傾きの調整が可能。

みたいなものをイメージしています(まんまパワポのオートシェイプ)

お力お貸しください。

A 回答 (3件)

PictureBoxコントロールの中にLineコントロールなどを組み合わせて貼り付けて


矢印にしてはどうでしょうか?
PictureBoxのMouseDownイベントでクリックしたポイントがわかります。

確定後の操作もMouseDown MouseUp、MouseMoveを使い
座標から矢印をクリックしたかどうかを判定します。
ドラッグはMouseDown→MouseUpするまでの間がドラッグしたことになります。

あくまで一案ですが。
    • good
    • 0
この回答へのお礼

sha-girlさん、早速の回答ありがとうございます。
実は私もLineメソッドで無理やり矢印を作って「らしい」ものを作って見たん
ですが、ちょっと問題が出てしまったのです。
PictureBoxにImageを部分的に貼り付けているのですが、
そうするとLine(矢印)がImageの後ろに隠れてしまうのです。
最前面からLine(矢印)、Image、PictureBoxの順にしたいのですが、
現状Lineメソッドで記述しているため、Imageが最前面に来てしまいます。

なんとか、克服する手段はないでしょうか?
(できれば、コーディングが少なくてすみそうなArrowコントロール
みたいなのがあるといいなぁ・・なんて)

お知恵をお貸しください。

お礼日時:2003/03/06 00:24

どうも。

頑張っておられるようですね。

>そうするとLine(矢印)がImageの後ろに隠れてしまうのです。
>最前面からLine(矢印)、Image、PictureBoxの順にしたいのですが、
>現状Lineメソッドで記述しているため、Imageが最前面に来てしまいます。

私がいっていたのはPictureBoxのLineメソッドではありません。ツールボックス
(PictureBoxとかあるとこ)にあるLineです。

そしてPictureBoxの選択状態でLineを貼り付けてみてください。
そうすればPictureBoxの内部に貼りつきます。
PictureBoxの内部に貼り付けているならPictureBoxを移動させたとき
Lineも移動するので確かめてみてください。
    • good
    • 0
この回答へのお礼

sha-girlさん、お礼のお返事が送れて申し訳ございません。
Lineコントロールを使えばzorder指定ができるんですね。
ありがとうございます。

Lineコントロールは、イベントをハンドルできないので、
無理だと勝手に決め付けてしまっていて、
どうせイベントをハンドルできないなら、Lineメソッドで描いてしまえっ、
というのりでやっていました。

ありがとうございました。

お礼日時:2003/03/17 22:39

昨晩質問を見て、昨日は何も思いつきませんでした、、、



sha-girl氏の発言
>PictureBox
このアイディアは、思いつきませんでした。

んで、これに便乗して・・・
リージョンと組み合わせると、多角形のオブジェクトが作成することができます。

参考URLに「みーくんパパの仕事部屋」を載せておきます。
※角の丸いウィンドウ
※吹き出し型ウィンドウ
などがいいサンプルになるかも?

参考URL:http://www.mitene.or.jp/~sugisita/family/papa/vb/
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!