System.Drawing.Pen을 관리되지 않는 해당 파트로 변환하는 간단한 방법이 있습니까? 만약 당신이 이런 펜을 가지고 있다면 :펜을 IntPtr로 변환
Pen p = new Pen(Color.Blue, 1f);
IntPtr ptr = p.ToPtr();
나는이 코드가 효과가 없다는 것을 알고 있지만, 비슷한 방법이 있습니까?
System.Drawing.Pen을 관리되지 않는 해당 파트로 변환하는 간단한 방법이 있습니까? 만약 당신이 이런 펜을 가지고 있다면 :펜을 IntPtr로 변환
Pen p = new Pen(Color.Blue, 1f);
IntPtr ptr = p.ToPtr();
나는이 코드가 효과가 없다는 것을 알고 있지만, 비슷한 방법이 있습니까?
Pen
클래스에는 원하는 내용이 정확히 포함 된 내부 속성 NativePen
이 있습니다. (코드는 적절한 권한이있는 경우) 다음을 사용하여 반사를 통해이 속성에 액세스 할 수 있습니다 : 내부 속성을 변경할 수 있기 때문에
Pen p = new Pen(Color.Blue, 1f);
PropertyInfo pi = typeof(Pen).GetProperty("NativePen", BindingFlags.Instance | BindingFlags.NonPublic);
IntPtr ip = (IntPtr)pi.GetValue(p, null);
은, 이론적으로 이것은 .NET 프레임 워크의 향후 버전에서 작동하지 않을 수 있습니다주의하십시오 ..
다른 .NET 구현 (특히 Mono)에서는 작동하지 않습니다. –
글쎄, 나는 그것 없이는 내 문제를 해결했지만 이것은 아마도 내 문제에 대해 효과가 있었을 것이다. 그래서 나는 그것을 표시 할 것이다. 어쨌든 고마워! – Bevin
@Konrad : 맞아. 그러나 펜을 IntPtr로 변환해도 모노로 이해할 수 있을지 확신 할 수 없습니다. 모든 변환이 끝나면 기본 그래픽 시스템에 액세스 할 수 있습니다. 모노 그래픽을 사용하는 경우 크게 다를 수 있습니다. – MartinStettner
당신은'HPEN' GDI 핸들에 관심이 있습니까? –