我想获得当前使用HGDIOBJ的LOGPEN结构(实际上是HPEN)。假设我们有这样的东西:
CPen ColoredPen;
ColoredPen.Create(...);
...
HGDIOBJ PriorPen = SelectObject(PaintingDC, ColoredPen);
现在我需要从 PriorPen 获取LOGPEN结构。我尝试了两种方式:
1. LOGPEN LogPen;
CPen* pPen = CPen::FromHandle((HPEN)PriorPen);
pPen->GetLogPen(&LogPen);
2. LOGPEN LogPen;
GetObject(PriorPen, sizeof(LogPen), &LogPen);
这些都没有给我一个正确的 LOGPEN 结构对象,因为所有字段都是 0。我还尝试为实际的 CPen 获取 LOGPEN,它工作得很好:
ColoredPen.GetLogPen(&LogPen);
但我只需要使用 HPEN。所以我的问题是如何从 HPEN 获得 LOGPEN?