1、先将文本转换为路径
2、填充路径时,使用光栅操作颜色取反。
随便找个图测试一下:
代码:
// 颜色取反
int nOldROP2 = dc.SetROP2(R2_NOT);
ASSERT(0 != nOldROP2);
int nOldBkMode = dc.SetBkMode(TRANSPARENT);
// 路径
VERIFY(dc.BeginPath());
dc.DrawText(strText, CRect(position),
DT_CENTER | DT_SINGLELINE | DT_VCENTER);
VERIFY(dc.EndPath());
// 在R2_NOT模式下填充路径
VERIFY(dc.FillPath());
dc.SetBkMode(nOldBkMode);
dc.SetROP2(nOldROP2);