我想创建一个按钮和一个圆角容器。我使用的区域画的角落,代码附在下面。然而,角落似乎不顺利,有没有办法解决这个问题,任何帮助将不胜感激。图片如下所附的即时通讯不允许上传图片。
的数据
[DllImport("Gdi32.dll", EntryPoint = "CreateRoundRectRgn")]
private static extern IntPtr CreateRoundRectRgn(
int nLeftRect,
int nTopRect,
int nRightRect,
int nBottomRect,
int nWidthEllipse,
int nHeightEllipse
);
个字符
2条答案
按热度按时间z9gpfhce1#
一旦该函数未使用普通WinForm函数实现。因此我们必须使用win32Api来实现它。
代码是参照this和this创建的。
首先,你必须画一个圆形的矩形。
字符串
让我们将它添加到绘图调用中。
型
然后我们可以画出与上图相同的形式。
第二,使用“每像素Alpha混合”绘制一个窗体。
型
最后,在加载表单时调用SetBitmap。
型
当您完成上述任务后,您终于可以在WinForm应用程序中获得平滑圆角。
的
我把它加到了完整的代码里,但是我忘了解释
how-draw-a-control-over-a-ws-ex-layered-form的
请注意,当使用UpdateLayeredWindow时,应用程序不需要响应WM_PAINT或其他绘画消息,因为它已经为窗口提供了视觉表示,系统将负责存储该图像,合成它并在屏幕上呈现它。UpdateLayeredWindow功能相当强大,但它通常需要修改现有Win32应用程序的绘制方式。
必须使用计时器等手动调用绘图。
型
表格的完整代码
型
8yoxcaq72#
试试这个代码:
字符串
阅读更多:Apply rounded corners in desktop apps