平滑圆angular的窗口

您好

我使用Windows API调用CreateRoundRgn和SetWindowRgn创build了一个圆边的窗口,但圆angular并不像使用GDI +绘制的圆angular矩形那么平滑。 无论如何要平整窗口的angular落?

procedure TPBSDashboardPanel.DefineWindowRegion; var WindowRegion: HRGN; begin if Assigned(Parent) then begin WindowRegion := CreateRoundRectRgn(0, 0, Width, Height, 20, 20); SetWindowRgn(Handle, WindowRegion, True); end; end; 

Solutions Collecting From Web of "平滑圆angular的窗口"

也许使用alpha透明度的位图来模拟除锯齿区域之外的抗锯齿,以允许Windows进行命中测试。

这里的问题是,Win32 GDI使用区域进行命中测试,因此绘制时,区域中的每个点都具有整数逻辑单位坐标,因此在进行命中测试时,可以知道该区域在区域之外或之内。

上帝保佑

PS:AFAIK没有办法来定义一个窗口使用窗口的实际区域,使窗口边界被渲染与消除锯齿,Win32只支持别名窗口。 Windows 7中的WDM模糊了边界,但我认为这是阴影,而不是模糊的实际区域。

如果你想画一个主题矩形,请检查这个链接。 要渲染(半)透明的位图,我猜(什么)是你的目标,检查这个功能。 要使用这两种功能,请让我知道或激发您使用Google。

我不是这方面的专家,但我知道GDI +支持反锯齿,而GDI则不支持。 没有抗锯齿,圆角不会看起来光滑。