我用鼠标在CDC上画了任意的图形,其中有一些是闭合的,如何发现并且填充这些闭合曲线的内部呢?实现如widows画图程序那样的效果!我用的是递归的方法(以鼠标点击处为开始点,对周围屏幕上的每一个点进行递归),对于较小的图形还可以应付,大的图形速度很慢,而且还经常非法操作!不知是什么原因?!!另外fillinrgn这个函数怎么用?还望各位高手给于回答!!!先谢谢了~~~~~~~~~~~~~~~~~~~~~~~~~~~~~如果你太忙,就提供个大概的算法就行了。
调试欢乐多
你可以显建立个区域crng再填充该区域。
CDC里有这样的函数
先用填充色填充背景,然后画上你的图形,然后再用floodfill在外面开始填充白色,这样如果被你的图形围起来的区域还是保持着填充色,但是也有一点可能实现起来有些困难:就是FloodFill(x,y,color)中的x,y不好确定,必须保证该点在你的图形外。
CDC pDC=GetDC();
pDC->FloodFill(point.x,point.y,RGB(255,255,255));
ReleaseDC(pDC);
CClientDC dc(this);
dc.FloodFill(point.x,point.y,RGB(255,0,0));
dc.ExtFloodFill(point.x,point.y,RGB(255,255,255),FLOODFILLSURFACE);
好了,今天就交流到这里了,我要下班了。
我的email是[email protected]
加分给您,请查收. 还有ACuke