線幅2以上の破線・一点鎖線等の描画

解決


orz  2006-11-28 17:30:22  No: 24096  IP: 192.*.*.*

線幅が1のときは、Pen.Style <> psSolid で描画できますが、
2以上になると、実線になってしまいます。

2以上のときに実線を以外を表現するAPIとかあるのでしょうか?

簡易表記するときに、Pen.Styleを変更して描画しますが、通常はpsSolidで、
パターン描画しています。そのため、なければないで済ませるのですが、
あるなら実装しておきたいという欲求があるのです。

CADの世界なんかではよくありそうな話ですが、やっぱり実線でパターン描画
しているだけなんでしょうか?

ご存知の方、よろしくお願いします。

編集 削除
Mr.XRAY  URL  2006-11-28 18:44:15  No: 24097  IP: 192.*.*.*

例えば以下の方法があります。

(1)Win32APIのExtCreatePenを使用
    http://homepage2.nifty.com/Mr_XRAY/Delphi/plSamples/T_LineEdgeStyle.htm
(2)GDI+を使用
    http://junki.lix.jp/gdiplus/013Pen1.htm

編集 削除
orz  2006-11-29 09:22:32  No: 24098  IP: 192.*.*.*

Mr.XRAY さん、ありがとうございます。

確かに、ExtCreatePen がありましたね。
長い間使ってなかったのですっかり忘れていました。

ソフトの動作環境が NT,2K,XP なのですが、GDI+では、gdiplus.dllを
入れないと使えない環境が出てくるので、またいずれ実装することにします。
が、サンプルページは、ありがたく頂戴致します。

あとは、CreatePen と ExtCreatePen の線種のパターンが同じにしてくれればよかったのに・・・。

編集 削除