MSDN のドキュメントは、GDI ペンに関する次の 2 つの事実について (ある程度) 明確です。
コスメティック ペン (CreatePen または ExtCreatePen w/ PS_COSMETIC で作成) は 1単位幅でなければなりません (まあ、<= 1 ですが、そこには行きません)。
幾何学的 (ExtCreatePen w/ PS_GEOMETRIC) ペンはソリッドでなければなりません (PS_SOLID のみ、PS_DASH は不可など)。ただし、太い線を描くことはできます。これは、上記のリンクに9倍の制限として明確に文書化されています(私はばかです)。私の弁護のために、私のコードの(悪い)コメントと(壊れた)ロジックは、そうではないと信じさせました。他のいくつかのグーグル記事は、Windows 9x のみを考慮して書かれているに違いありません。
これらのルールに違反して、GDI がこれらのペンで楽しく描画できるのはなぜですか?
太い (たとえば、幅 = 10) 化粧ペンと破線の幾何学ペンを作成できます。なんてこった、太くて破線の幾何学的なペンを作成できます!
これらのペンは、通常は正常に動作するようです。私が見た唯一の問題は、非常に大きな点の配列を渡すときの Polyline です。線のレンダリングが非常に遅くなります。ただし、Polyline は、一般に大きな配列では奇妙な動作をします。悪いペンでは動作が異なります。(私の他のポリラインの問題は別の質問かもしれません...)
幅広のコスメティック ペンやパターン付きの幅広のジオメトリックを使用しても安全ですか?