現在HGDIOBJ (実際にはHPEN ) を使用するためのLOGPEN構造を取得したいと思います。次のようなものがあるとしましょう。
CPen ColoredPen;
ColoredPen.Create(...);
...
HGDIOBJ PriorPen = SelectObject(PaintingDC, ColoredPen);
ここで、PriorPen からLOGPEN構造を取得する必要があります。私は2つの方法で試しました:
1. LOGPEN LogPen;
CPen* pPen = CPen::FromHandle((HPEN)PriorPen);
pPen->GetLogPen(&LogPen);
2. LOGPEN LogPen;
GetObject(PriorPen, sizeof(LogPen), &LogPen);
すべてのフィールドが 0 であるため、これらのどれも正しい LOGPEN 構造体オブジェクトを提供しません。また、実際の CPen の LOGPEN を取得しようとしましたが、完全に機能します。
ColoredPen.GetLogPen(&LogPen);
しかし、私は HPEN だけで作業する必要があります。私の質問は、どうすれば HPEN から LOGPEN を入手できますか?