MFC怎么对任意不规则的闭合图形进行填充
时间: 2024-06-08 18:09:49 浏览: 21
在MFC中,可以使用CDC类的FillRgn函数来对任意不规则的闭合图形进行填充。具体步骤如下:
1. 创建一个CRgn对象,并使用CRgn::CreatePolyPolygonRgn或CRgn::CreatePolygonRgn函数创建一个表示不规则闭合图形的区域。
2. 获取CDC对象的指针,使用CDC::SelectObject函数将CRgn对象选入CDC对象。
3. 使用CDC::SetBkMode函数设置背景模式为透明,使用CDC::SetBkColor函数设置背景颜色为想要填充的颜色。
4. 使用CDC::FillRgn函数在CDC对象上填充不规则闭合图形的区域。
示例代码:
```cpp
// 创建表示不规则闭合图形的区域
CRgn rgn;
POINT pts[5] = {{10,10}, {50,50}, {80,20}, {100,70}, {40,100}};
rgn.CreatePolygonRgn(pts, 5, ALTERNATE);
// 获取CDC对象的指针
CDC* pDC = GetDC();
if (pDC)
{
// 将CRgn对象选入CDC对象
pDC->SelectObject(&rgn);
// 设置背景模式和颜色
pDC->SetBkMode(TRANSPARENT);
pDC->SetBkColor(RGB(255, 0, 0));
// 填充区域
pDC->FillRgn(&rgn, &CBrush(RGB(255, 0, 0)));
ReleaseDC(pDC);
}
```
这样就可以对任意不规则的闭合图形进行填充了。注意,要在绘制图形的设备上下文(DC)上进行填充,否则可能会出现填充不完整或填充错位的情况。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)