CreatePenIndirect 方法的签名通常如下:
BOOL CreatePenIndirect(
const LOGPEN* lpLogPen
);
其中 lpLogPen 是一个指向 LOGPEN 结构的指针,该结构描述了要创建的画笔的属性。LOGPEN 结构的定义可能如下:
typedef struct tagLOGPEN {
UINT lopnStyle;
POINT lopnWidth;
COLORREF lopnColor;
} LOGPEN;
使用 CreatePenIndirect 的示例可能如下:
LOGPEN logPen;
logPen.lopnStyle = PS_SOLID;
logPen.lopnWidth.x = 2;
logPen.lopnColor = RGB(255, 0, 0);
CPen myPen;
myPen.CreatePenIndirect(&logPen);
这样,通过 CreatePenIndirect 方法,您可以使用 LOGPEN 结构动态地创建画笔对象,而不必手动指定每个参数。
与 CreatePen 一样,使用 CreatePenIndirect 后,您可能需要手动销毁对象以防止内存泄漏。在适当的时机,调用 DeleteObject 方法来释放创建的画笔对象。
myPen.DeleteObject();
转载请注明出处:http://www.zyzy.cn/article/detail/21714/MFC/CPen