MSDN文档(有些)清楚地说明了有关 GDI Pen 的以下两个事实:
化妆笔(通过 CreatePen 或 ExtCreatePen w/ PS_COSMETIC 创建)必须为 1 个单位宽(嗯,<= 1,但我们不要去那里)。
几何 (ExtCreatePen w/ PS_GEOMETRIC) 笔必须是实心的(仅限 PS_SOLID,无 PS_DASH 等)。然而,它们可以画出更粗的线条。这在我上面的链接中清楚地记录为只有 9 倍的限制(我很愚蠢)。为了我的辩护,我的代码中的(坏的)评论和(破碎的)逻辑让我不相信。其他一些谷歌搜索的文章一定是只针对 Windows 9x 编写的。
为什么我可以违反这些规则并让 GDI 愉快地用这些笔画画?
我可以创建胖(例如宽度 = 10)化妆笔和虚线几何笔。哎呀,我可以创建一个粗大的虚线几何笔!
这些笔似乎通常可以正常工作。我看到的唯一问题是在折线中,当我通过非常大的点数组时 - 它渲染线条的速度非常慢。但是,Polyline 通常对大型阵列的行为很奇怪 - 它与坏笔的行为不同。(我的其他折线问题可能是另一个问题......)
使用宽化妆笔或带有图案的宽几何笔是否安全?