VB6で線を描画する際に、DrawMode = 7 とするとXor Pen(2度同じ線を描くと消える)が使用でき、マウスクリックで線を描画する際などのマウスの動きにあわせて未確定線を描画したり、同じくマウスの動きにあわせて十字カーソルを描画する際などには必須でした。VB.NETではDrawModeがないのでこのXorラインが描けません。どのようにしたらよいのでしょうか?
ControlPaint.DrawReversibleLine メソッド
でしょうか?
>ControlPaint.DrawReversibleLine メソッドでしょうか?
ありがとうございます(号泣)。早速試してみました。
一応希望するようにXorラインが描けたのですが、たとえばPictureboxの中に描くことができません。通常のDrawLineであれば、
Dim g As Graphics = PictureBox1.CreateGraphics() のようにオブジェクトを取得してPictureBox内に描くと思いますが、このDrawReversibleLine の場合、いろいろ試しましたがPictureBox内に描くことができません。どのようにすればよろしいのでしょうか?
えーと、見たところControlPaint.DrawReversibleLineは
・特定のコントロールに対して描写するのではなく、
デスクトップ全体の一部に対して描写する
メソッドのようです。
なので、例えば、
//MSDNから抜粋&加工したC#のサンプル
ControlPaint.DrawReversibleLine(
PictureBox1.PointToScreen(new Point(0,0)),
PictureBox1.PointToScreen(new Point(PictureBox1.ClientRectangle.Right, PictureBox1.ClientRectangle.Bottom
)),
Colors.red);
などとするのでしょう。
> Colors.red);
これはColor.Redですね(orz
おお、すごい!できました(感動&号泣&土下座)
PointToScreenのようなメソッドがあるということ自体知りませんでした。
皆さんすごいですね、何でこんなことがわかるんでしょうか?恐れ入ります。ともあれ大変お世話になりありがとうございました(感謝)
ツイート | ![]() |