当前位置:C++技术网 > 资讯 > NULL_BRUSH,NULL_PEN的理解

NULL_BRUSH,NULL_PEN的理解

更新时间:2016-01-13 16:55:33浏览次数:1+次

许多 GDI 函数使用当前画笔填充内部和当前笔来绘制直线。在某些情况下,应用程序可能不需要修改通常由钢笔或画笔受影响的区域。选择到设备上下文的 NULL_PEN 或 NULL_BRUSH 通知 GDI 不能修改通常受影响的区域。简单地说,"NULL_"的对象不显示任何内容。

void C空白画刷Dlg::OnLButtonDown(UINT nFlags, CPoint point)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	pt.x=point.x;
	pt.y=point.y;
	CDialogEx::OnLButtonDown(nFlags, point);
}


void C空白画刷Dlg::OnLButtonUp(UINT nFlags, CPoint point)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	CDC *pDC=GetDC();
	//pDC->SelectObject(GetStockObject(NULL_BRUSH));
	//pDC->Rectangle(CRect(pt,point));
	pDC->SelectObject(GetStockObject(NULL_PEN));
	pDC->SelectObject(GetStockObject(GRAY_BRUSH));
	pDC->Rectangle(CRect(pt,point));
	ReleaseDC(pDC);
	CDialogEx::OnLButtonUp(nFlags, point);
}
如果注释掉NULL_PEN这一行的话,你会发现有黑色的边框,NULL_PEN的作用就在这里,他告诉GDI,我要用一个空的画笔画边界。

使用NULL_PEN:

对于NULL_BRUSH的代码上面已给出,你自己试着运行就是了。