但我在编写ACTIVEX控件时,发现用HRGN hDrawArea = CreateRectRgn(...)创建的对象,用SelectClipRgn(hdc, NULL); DeleteObject(hDrawArea);无法释放,能否指点迷津! ( headsea 发表于 2004-11-3 16:50:00)
我有这样的想法,利用刚才的方法,我们可以把一个图形的边框绘制出来,得到一个中间空心的边框。那么有谁能在边框里面画线条,用线条把这个图形模拟出来,也就是说再生成一组线条,用它来模拟原先的图形。 ( unfirewood 发表于 2004-9-10 14:57:00)
如果单单想得到一个字体的外框的话,还可以利用getglyphoutline这个函数,不过用起来比较复杂。它是得到边框的点的信息,然后把这些点相连,就构成了一个边框。 ( unfirewood 发表于 2004-9-10 14:52:00)
楼主的想法非常巧妙,不过GDI中是有函数可以用于RGN的描边的,使用CDC中的FrameRgn函数就可以了,你试着把下面的代码加到你的程序中看看是不是和你的一样?
rgn.OffsetRgn(0,200);
dc.FrameRgn(&rgn,&CBrush(RGB(0,0,0)),1,1);
另外,楼主的方法虽然不是最简单的,但的确是非常巧妙的,而且这个思想可以使用在一些别的应用中,对小弟我也很有启发,在这里表示感谢。
( liutang 发表于 2004-9-2 20:48:00)
不错的想法!不知能不能再融入anti-aliasing技术,很多不规则窗口都会有很难搞的锯齿现象 ( underyun 发表于 2004-9-1 14:43:00)
.......................................................
--------------------next---------------------
阅读(322) | 评论(0) | 转发(0) |