win32 平台下不规则窗口没什么好多说的,网上的文章一大吧。wince没有 CreatePolygonRgn 函数。
看下面这篇文章吧。
Creating irregularly-shaped windows in Compact Framework
但是我觉得还不完美,为什么不自己实现 CreatePolygonRgn呢? 当然首先要先复习一下解析几何了。
大致思路如下:
- 求出外包矩形
- 自顶向下求出每条水平线于多变形的每条边的交点。这样每条水平线应该都可以的到1个高度为1个像素的矩形。(思考:凹多边形可能会复杂一点,一条水平线可能会得到多个交点,究竟哪两个组成矩形,那个单独是顶点要考虑一下)
- 用这些矩形调用ExtCreateRegion 或 CombineRgn 就可以生成PolygonRgn了。
ps: 其实找一些讲图形算法的书肯定也能找到答案,比如填充算法。
VB6.0中如何快速实现大面积不规则区域的填充 这篇文章介绍了几种填充算法的优缺点,貌似不错,时间不多,先记下,日后细读