1、路径层的创建是通过启用CDC类提供的BeginPath和EndPath这两个函数实现的。
2、路径层一般都是配合裁剪区域一起使用的,针对当前裁剪区域就行某种形式的保护。
void CMapBigView::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
// Do not call CView::OnPaint() for painting messages
CString Str("这是一个路径层测试文本!"); //定义预输出的文本信息
dc.TextOut(100, 100, Str); //实现文本输出
// 参数: 输出的X坐标,输出的Y坐标,指向输出文本信息的指针
CSize sz = dc.GetTextExtent(Str); //获取整个Str字符串文本信息
/* 以下四行就是启用路径层,裁剪区域保护*/
dc.BeginPath();
dc.Rectangle(80, 80, 110+sz.cx, 110+sz.cy); //启用画矩形区域,设置一个当前路径层文本裁剪保护区域
dc.EndPath();
dc.SelectClipPath(RGN_DIFF);//设置路径层裁剪区域的显示格式
/*绘制线条网格*/
for (int i=0; i<500; i+=10)
{
dc.MoveTo(0, i);
dc.LineTo(500, i);
dc.MoveTo(i, 0);
dc.LineTo(i, 500);
}
}
a、当在窗口中同时输出重叠文本时, 如果不启用路径层将会得到如下下图所示:
b、当在窗口中同时输出重叠文本时, 如果启用路径层将会得到如下下图所示: