문제

MSDN 선적 서류 비치 GDI 펜에 대한 다음 두 가지 사실에 대해 (다소) 분명합니다.

  1. 화장품 펜 (createpen 또는 extcreatepen w/ ps_cosmetic을 통해 생성)은 1이어야합니다. 단위 넓은 (음, <= 1이지만 거기에 가지 마십시오).

  2. 기하학적 (ps_geometric w/ ps_geometric w/ ps_geometric) 펜은 고체 (ps_solid 만, ps_dash 등) 펜이어야합니다. 그러나 그들은 더 뚱뚱한 선을 그릴 수 있습니다. 이것은 위에 놓은 링크에 9 배 제한 (멍청한 제한)으로 명확하게 문서화되어 있습니다. 내 코드의 내 방어 (나쁜) 의견과 (깨진) 논리로 인해 다른 방법으로 믿게되었습니다. 다른 Googled 기사는 Windows 9X 만 동의해야합니다.

왜이 규칙을 검증 하고이 펜으로 GDI를 행복하게 끌어들일 수 있습니까?

나는 지방 (예를 들어 너비 = 10)을 만들 수 있습니다. 그리고 점선 기하학적 펜. 도대체, 나는 지방, 점선 기하학적 펜을 만들 수 있습니다!

이 펜은 잘 작동하는 것 같습니다 대개. 내가 본 유일한 문제는 매우 큰 점수의 점을 통과 할 때 폴리 라인입니다. 선을 매우 느리게 만듭니다. 그러나 폴리 라인은 일반적으로 큰 배열로 이상하게 작용하고 있습니다. 나쁜 펜. (내 다른 폴리 라인 문제는 또 다른 질문 일 수 있습니다 ...)

넓은 화장품 펜을 사용하는 것이 안전합니까? 아니면 패턴이있는 넓은 기하학적?

도움이 되었습니까?

해결책

일반적으로 문서화 된 API를 준수해야합니다. 그렇지 않으면 OS 버전 특정 동작에 의존 할 위험이 있습니다.

그만큼 ExtCreatePen 당신이 설명하는 제한 (예 : no PS_DASH ~와 함께 PS_GEOMETRIC)는 Winnt가 아닌 Win9X에만 적용되므로 NT/2000/XP에서 "지방, 점선 기하학적 펜"은 문제가되지 않아야합니다. 또한 주목하십시오 Polyline Win9X에는 몇 가지 제한이 있습니다.

점선을 원한다면 사용하는 것이 좋습니다 PS_USERSTYLE 기본값에 의존하기보다는 대시와 간격의 길이를 제어하도록 PS_DASH 당신을 준다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top