GDI+(Gdiplus)怎么创建区域?
如果用GDI,可以用Create……Rgn之类的函数(例如CreateEllipticRgn)创建一个区域,括号里的是创建椭圆区域。然后我们可以用SetWindowRgn函数重设窗口所在的区域,就是将窗口设置成不同的形状。
但是,问题1.如果继续用GDI,大家都应该知道,GDI该死的锯齿真的很讨厌,至今我也没有找到抗锯齿的办法,但是用上面所说的两个函数重设窗口的形状真的很方便。那么,如果大家知道GDI抗锯齿的方法,而且是足够简便的,就可以直接回答,下面基本可以忽略了。
问题二。如果大家也没有找到简便的GDI抗锯齿的方法,那么谁知道GDI+(Gdiplus)怎么创建一个能够被SetWindowRgn函数使用的区域?因为我在GDI+函数里找到了抗锯齿函数,而且效果不错,就是苦于不知道GDI+怎么创建一个区域,可以被SetWindowRgn函数使用,知道的畅所欲言吧
[最优解释]
这个例子里有你想要的答案
[其他解释]
UpdateLayeredWindow支持用一张透明位图(比如PNG)创建异形窗口,效果真的不错,详情参考:http://bbs.csdn.net/topics/370175604
[其他解释]
那么如果是第二个问题呢?怎么用GDI+创建一个区域,我只找到了GdipCreateRegionRect,就是创建一个矩形区域,而创建别的图元区域的函数我始终没有找到。该怎么做?
根据我现在找到的函数,看看我这个思路对不对啊。如果要创建椭圆区域,先用GdipAddPathEllipseI创建一个路径,返回一个EllipsePath,然后将这个传给GdipCombineRegionPath,再将区域转成路径。这样对吗?
现在先不做异型窗体了,现在要做点击检查,这个一定要用到区域了~
[其他解释]
由UpdateLayeredWindow创建的窗体,完全透明的部份是不响应点击的,话说回来,如果只做点击测试,干嘛非得用GDI+呢。
[其他解释]